user-interface - 在 Tkinter GUI 中嵌入 Bokeh 和大数据

我正在构建一个 GUI exe 应用程序,它可以显示每个绘图大约 2 亿个数据点的大数据。到目前为止,我发现可以远程保持良好性能的唯一方法是将 Bokeh 和 Holoviews/HVPLOT 与 Datashade 一起使用。我最初使用 Tkinter 构建我的程序以使用 Matplotlib/Seaborn 可视化作为可执行文件运行,但这在绘制大数据时在性能方面不起作用。我发现带有 Datashade 的 Bokeh 可以完成这项工作,但是有没有办法将 Bokeh/Holoviews 嵌入到 Tkinter GUI 中? Bokeh 要么在 Jupyter Notebook 中绘制高分辨率图表,要么在输出到 HTML 文件时绘制分辨率较低的图表。

最佳答案

这不是当前直接支持的配置,但您有一些选择:

  1. 是否可以仅显示地 block 的裸图,不绘制坐标轴且不覆盖 map 或其他类型的数据?如果是这样,您可以使用位于 datashader.org 的用户指南中显示的纯 Datashader-only 界面。 ,它可以让您生成可以在 Tkinter 中轻松显示的 PNG 图像。

  2. 如果您确实需要坐标轴和数字或文本标签,是否可以将这些离屏渲染为静态 PNG 以便您可以在 Tk 中显示,而无需任何交互式控件?如果是这样,您可以将 HoloViews 与 Matplotlib 后端一起使用,将您的 Datashader 图渲染到 PNG 中,并像案例 1 一样嵌入它们。参见例如Datashader user guide 中的 mpl 示例.

  3. 如果您确实需要坐标轴并且需要交互式控件(例如放大和缩小),则有一些 work from 2016 on embedding Datashader into Matplotlib with interactive controls .该代码已经有几年没有运行了,甚至在当时还不够成熟,无法直接包含在 Matplotlib 或 Datashader 中,但它似乎可以作为让 Datashader 在 Matplotlib 有后端的任何地方工作的起点。

  4. 如果方法 3 不起作用,您可以结合方法 2 和 3 或 1 和 3,显示静态图像,但在用于构建Datashader API 调用(选项 1)或 HoloViews 调用(选项 2)。这种方法使用起来会比较笨拙,但可以让您随心所欲地实现。

希望这些选项之一能满足您的需求,如果您有任何有用的想法,请告诉我们,以防添加为示例可能会很好!

https://stackoverflow.com/questions/54335247/

相关文章:

python - 如何在 PyCharm 中使用 Anaconda 基础环境

java - 如何通过本地主机将 SSL 与 ActiveMQ 一起使用

javascript - 如何在 iframe 上设置 'X-Frame-Options'?

xcode - React Native - 多个目标

java - 如何在 Micronaut 中使用@Parameter?

maven - 版本解析异常 : Failed to resolve version RELEASE

python - Tensorflow-gpu获取卷积算法失败

pytorch - 如何将 .txt 文件(语料库)读入 pytorch 中的 torchtext?

asp.net - 为什么要用 aspnet_regiis.exe 加密

unit-testing - 如何在 Xcode 中为 Apple Watch 添加单元测试?