python - 禁用 pyqtgraph 绘图窗口

标签 python plot backend pyqtgraph

作为我这个问题的延续: pyqtgraph for plotting multiple data lists

我设法使用 pyqtgraph 将我的绘图导出到文件中。但我仍然得到 pyqtgraph 生成的窗口,以便尝试在那里创建绘图。该窗口现在什么也没有显示,它是空的、白色的。当我使用常规 python 控制台时,过了一会儿这个窗口就会消失,但是如果我使用 Ipython,该窗口会显示“未响应”,当我关闭它时,Ipython 会显示“内核死亡,正在重新启动”。

有没有办法完全禁用此 pyqtgraph 窗口并仅使用输出文件来创建绘图,以便使其正常工作而不会出现错误?

我曾经使用 matplotlib 执行此操作(弹出相同的窗口,但如果您使用命令 matplotlib.use('Agg') 来更改后端,则窗口停止弹出.

最佳答案

哦天啊...我刚刚想明白了!我的第一个回答,别对我太严厉。

首先,确保您在类的构造函数(init 函数)中创建 pyqtgraph 图表。在那里调用一次并立即隐藏它(这对我来说是复杂的部分)。

这里是一个示例代码:

import numpy as np
import pyqtgraph as pg
import pyqtgraph.exporters


class MyPlotClass():
    def __init__(self):
        self.windowplt = pg.plot()
        self.windowplt.win.hide()

    def savePlots(self):
        x = np.arange(0, 256)
        y = np.arange(0, 256)
        self.windowplt.plot(x, y)
        exporter = pg.exporters.ImageExporter(self.windowplt.plotItem)
        exporter.params.param('width').setValue(256, blockSignal=exporter.widthChanged)
        exporter.params.param('height').setValue(256, blockSignal=exporter.heightChanged)
        for i in np.arange(0,10):
            exporter.export('./fileName' + str(i) +  '.png')
            print(i)

if __name__ == "__main__":
    saveMyFiles = MyPlotClass()
    saveMyFiles.savePlots()

在一个镜头持续时间内只会出现一个窗口并立即隐藏。 我知道您的问题很旧,但它可能对将来的任何人都有帮助。我一整天都在寻找解决方案。

正如您之前的帖子中提到的 pyqtgraph for plotting multiple data lists ImageExporter.py 错误仍然存​​在。无需更改 pyqtgraph 库的代码,您可以通过自己设置宽度和高度来解决它(如上面的代码所示)。

exporter.params.param('width').setValue(256, blockSignal=exporter.widthChanged)
exporter.params.param('height').setValue(256, blockSignal=exporter.heightChanged)

关于python - 禁用 pyqtgraph 绘图窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48042312/

相关文章:

将马赛克图表示为 TreeMap

php - 使用 Sximo 构建 Laravel 5

python - ProgrammingError : (psycopg2. ProgrammingError) 无法适配类型 'numpy.ndarray'

python - 什么是 R 函数(如 str()、summary() 和 head())的 Python pandas 等价物?

matlab - 绘制隐藏变量/参数

ios - 如何使用 Node.js 和 Express 构建 API 混搭?

compiler-construction - 制作一门语言,需要一个好的后端

python - 使用 pandas 加载 xls 文件失败

python - 将 C 方法附加到现有的 Python 类

r - 控制R绘图轴上的数字格式