首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用pyqtgraph绘图窗口

禁用pyqtgraph绘图窗口
EN

Stack Overflow用户
提问于 2017-12-31 12:08:20
回答 1查看 1.3K关注 0票数 2

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

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

是否有一种方法可以完全禁用这个pyqtgraph窗口,并且只使用输出文件来创建绘图,以便它能够正常工作而不会出现错误?

我以前使用matplotlib (它有相同的窗口弹出,但如果您使用命令matplotlib.use('Agg')更改后端,则窗口停止弹出)来完成此操作。

EN

回答 1

Stack Overflow用户

发布于 2018-06-21 14:32:14

哦我的..。我刚弄明白了!我的第一个回答是这样的,不要对我太苛刻。

首先,确保您正在创建类的constructor(init函数中的pyqtgraph图。打一次电话,马上把它藏起来(这对我来说是很复杂的部分)。

下面是一个示例代码:

代码语言:javascript
复制
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库的代码时,您可以通过自己设置宽度和高度来绕过它(如上面的代码所示)。

代码语言:javascript
复制
exporter.params.param('width').setValue(256, blockSignal=exporter.widthChanged)
exporter.params.param('height').setValue(256, blockSignal=exporter.heightChanged)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48042312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档