1、问题描述
今天收到私信,一位朋友目前可以导出单张图,但是如何将使用pyqtgraph绘制的多张图导出到本地呢?
实话说这个问题我之前没有这方面的需求,就没有考虑。现在想想,确实如果能够直接export图片,效率或许要比截图质量更高些。从这个事情也可以看出,多于同行业和不同行业的朋友多多交流,对我们自己的成长也大有裨益。
2、解决方案
经过仔细观察(面向baidu&google编程,hhh),发现pyqtgraph窗口提供了右键export功能。但是问题恰恰在于,朋友已经会导出单张图了,对导出多张图
还有困惑。
这样的话,问题就明朗了。我们可以将多长图片绘制到一个widget中不就好了吗?而pyqtgraph已经提供了GraphicsLayoutWidget
。
实例代码如下:
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
#QtGui.QApplication.setGraphicsSystem('raster')
app = QtGui.QApplication([])
#mw = QtGui.QMainWindow()
#mw.resize(800,800)
win = pg.GraphicsLayoutWidget(show=True, title="Basic plotting examples")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example: Plotting')
# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)
p1 = win.addPlot(title="Basic array plotting", y=np.random.normal(size=100))
p2 = win.addPlot(title="Multiple curves")
p2.plot(np.random.normal(size=100), pen=(255,0,0), name="Red curve")
p2.plot(np.random.normal(size=110)+5, pen=(0,255,0), name="Green curve")
p2.plot(np.random.normal(size=120)+10, pen=(0,0,255), name="Blue curve")
p3 = win.addPlot(title