作为我这个问题的延续:pyqtgraph for plotting multiple data lists
我设法使用pyqtgraph将我的绘图导出到一个文件中。但是我仍然得到了pyqtgraph生成的窗口,以便在那里创建这个图。这个窗口现在什么也没有显示,它是空的和白色的。当我使用常规python控制台时,这个窗口会在一段时间后消失,但是如果我使用Ipython,窗口会说“没有响应”,当我关闭它时,Ipython说“内核死了,重新启动”。
是否有一种方法可以完全禁用这个pyqtgraph窗口,并且只使用输出文件来创建绘图,以便它能够正常工作而不会出现错误?
我以前使用matplotlib (它有相同的窗口弹出,但如果您使用命令matplotlib.use('Agg')更改后端,则窗口停止弹出)来完成此操作。
发布于 2018-06-21 14:32:14
哦我的..。我刚弄明白了!我的第一个回答是这样的,不要对我太苛刻。
首先,确保您正在创建类的constructor(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)https://stackoverflow.com/questions/48042312
复制相似问题