繁体   English   中英

pyqtgraph用于绘制多个数据列表

[英]pyqtgraph for plotting multiple data lists

目前,我正在使用matplotlib绘制多个数据的numpy数组(或列表)。 这些对应于大约3000个地块。 这些图是时间序列。 我的问题是,当这些列表变得太大而无法容纳大量数据时,matplotlib会非常慢。 我读到pyqtgraph可以绘制得很快,但是我的问题是:

您可以使用pyqtgraph绘制数据而无需生成pyqt窗口,而是直接将其保存到文件中吗? Matplotlib具有更改后端的选项,因此它不会生成窗口,而只是创建文件,pyqtgraph是否有类似内容?

您还认为,对于我的问题,pyqtgraph是正确的方法吗? 对于实时绘制流数据,我看到了很多东西,但是我想做的并不涉及实时流数据。 我是否应该使用其他方法为所有数据创建图?

如果要保存绘图的图像,则无需显示窗口,例如以下示例:

import pyqtgraph as pg
import pyqtgraph.exporters

plt = pg.plot([1, 2, 3, 4, 5], [2, 5, 2, 5, 2])
exporter = pg.exporters.ImageExporter(plt.plotItem)
exporter.parameters()['width'] = 640
exporter.export('fileName.png')

尽管该库存在错误,但解决方案很简单,您必须转到文件pyqtgraph/exporters/ImageExporter.py

pyqtgraph
|
...
├── exporters
│   ├── ...
│   ├── ImageExporter.py
... ...

并更改第70行:

bg = np.empty((self.params['width'], self.params['height'], 4), dtype=np.ubyte)

至:

bg = np.empty((int(self.params['width']), int(self.params['height']), 4), dtype=np.ubyte)

fileName.png

在此处输入图片说明

参考文献:

要关闭默认情况下打开的窗口,可以添加plt.win.close() ,如下所示:

import pyqtgraph as pg
import pyqtgraph.exporters

plt = pg.plot([1, 4, 3, 9, 5], [2, 3, 2, 1, 0])
plt.win.close()
exporter = pg.exporters.ImageExporter(plt.plotItem)
exporter.parameters()['width'] = 640
exporter.export('fileName.png')

参考: http : //www.pyqtgraph.org/documentation/exporting.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM