![](/img/trans.png)
[英]Best practice for plotting multiple streams of data on different graphs in Python & 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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.