用于绘制多个数据列表的pyqtgraph

问题描述 投票:0回答:1

目前我正在使用matplotlib绘制多个numpy数组(或列表)的数据。这些对应于大约3000个图。情节是时间序列。我的问题是,当这些列表变得太大并且有大量数据时,matplotlib非常慢。我读到pyqtgraph可以快速绘制,但我的问题是:

你可以使用pyqtgraph绘制数据而不产生pyqt窗口,而是直接将它们保存到文件中吗? Matplotlib有一个更改后端的选项,因此它不会产生窗口,而只是创建文件,pyqtgraph有类似的东西吗?

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

python performance plot pyqtgraph
1个回答
1
投票

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

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

enter image description here

参考文献:

© www.soinside.com 2019 - 2024. All rights reserved.