作为我的这个问题的延续: pyqtgraph for plotting multiple data lists
我设法使用pyqtgraph将我的绘图导出到文件中。但我仍然得到了pyqtgraph产生的窗口,以便尝试在那里创建情节。这个窗口现在什么也没显示,它是空的和白色的。当我使用普通的python控制台时,一段时间后这个窗口消失了,但如果我使用Ipython,窗口会显示“没有响应”,当我关闭它时,Ipython说“内核死了,重启”。
是否有办法完全禁用此pyqtgraph窗口并仅使用输出文件创建绘图,以使其正常工作而不出错?
我曾经使用matplotlib(它弹出相同的窗口,但是如果你使用命令matplotlib.use('Agg')
)来改变后端,那么窗口就会停止弹出。
答案 0 :(得分:1)
哦,我...我想通了!关于SO的第一个答案,请不要对我太苛刻。
首先,确保要在类的构造函数( 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库的代码,您可以通过自己设置width和height来解决它(如上述代码)。
exporter.params.param('width').setValue(256, blockSignal=exporter.widthChanged)
exporter.params.param('height').setValue(256, blockSignal=exporter.heightChanged)