【问题标题】:Is it possible to use pyqtgraph functions to plot inline on Jupyter Notebook?是否可以使用 pyqtgraph 函数在 Jupyter Notebook 上内联绘图?
【发布时间】:2021-03-09 10:23:51
【问题描述】:

我正在尝试使用 Pyqtgraph 在 Jupyter 笔记本上绘制一些图像数组,但我遇到了一些问题。基本上,我使用的是以下代码:

import pyqtgraph as pg
%gui qt
pg.image(recon_array_a[0])

这给了我我需要的东西,但正在新窗口中打开它。有没有办法打开内联?例如,可以在 Jupyter 笔记本上使用 matplotlib 吗?

【问题讨论】:

    标签: python jupyter-notebook pyqt pyqtgraph


    【解决方案1】:

    我不知道有一种方法可以让交互式 qt 应用程序(例如 pyqtgraph)在 jupyter notebook 中内联访问。

    如果您只对没有任何交互性的“原始图像”感兴趣,这里有一个解决方法:

    • 使用 pyqtgraph 生成图像
    • 将此图像导出到临时文件
    • 显示临时文件

    这是一个快速演示(不再需要 %gui qt)

    import pyqtgraph as pg
    import pyqtgraph.exporters
    import numpy as np
    from IPython.display import display, Image
    
    def show_image(data):
        img = pg.image(data)
        file_name = "temp.png"
        exporter = pg.exporters.ImageExporter(img.imageItem).export(file_name)
        img.close()
        display(Image(filename=file_name))
    
    data = np.array([[1,0],[2,3]])
    show_image(data)
    

    【讨论】:

    • 你好克里斯蒂安。谢谢您的回答。我的意思是 pyqtgraph,因为我在桌面应用程序中使用了这个库(效果非常好)。与图像交互对我的目标非常重要。你知道是否有另一个库可以像 pyqtgraph 对桌面应用程序那样处理它?我尝试了 matplotlib,但它并没有给我带来很好的性能。
    • @GabrielSchubert 对于 Jupyter,我只知道 matplotlib,它可以进行交互 (towardsdatascience.com/…)。如果你想要“一个带有 pyqtgraph 的桌面应用程序”,为什么不直接使用 pyqt 来创建一个具有嵌入式 pyqtgraph 功能的应用程序呢?还是我误解了您对“桌面应用程序”的期望?
    【解决方案2】:

    此线程中的贡献者取得了一些成功

    https://groups.google.com/g/pyqtgraph/c/KImnC-hOTMA

    QT 控制台也可能有助于在 Jupyter 和 Python 之间进行通信

    https://qtconsole.readthedocs.io/en/stable/

    或者

    https://bokeh.org/https://plotly.com/ 可能是您可以考虑的选项。

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 2016-08-05
      • 2019-03-22
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2018-08-25
      • 1970-01-01
      相关资源
      最近更新 更多