作为我这个问题的延续: 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/