文章目录
-
- pyqtgraph简介
- pyqtgraph图形在pyqt中展示
- 完整代码
- 运行截图
pyqtgraph简介
pyqtgraph是python的一个绘图库,和鼎鼎大名的Matplotlib库比较起来,有着以下特点:
优势:
1、pyqtgraph运行速度很快,特别是数量大的时候
2、pyqtgraph在交互上非常好,例如在图形中滑动鼠标滚轮放大和缩小等
3、pyqtgraph和qt更亲和
不足
1、pyqtgraph不如Matplotlib功能完整和成熟
pyqtgraph图形在pyqt中展示
这里简单展示一个条形图,文章重点在如何在pyqt中嵌入pyqtgraph图形,pyqtgraph用法不做过多介绍,如下面的代码所示我直接继承的PyQt的QMainWindow类,然后像放置其他pyqt控件一样,将图表对象放置在QMainWindow窗口上最简单的理解就是,你可以像放置按钮一样,把图表对象直接放置在窗口上。
完整代码
import numpy as np import sys import pyqtgraph as pg from PyQt5.Qt import QMainWindow, QApplication class CtxPlotBar(QMainWindow): def __init__(self): super().__init__() self.plot_bar() def plot_bar(self): res = [[1, 2, 3, 4, 5, 6, 7, 8, 9]] self.setWindowTitle('条形图') view = pg.GraphicsLayoutWidget() self.w1 = view.addPlot() # 单组数据即可,x为横坐标 x = np.arange(len(res[0])) bar_count = 0 for item in res: y = [] for value in item: y.append(value) bg = pg.BarGraphItem(x=x + bar_count, height=y, width=0.3, brush='r') self.w1.addItem(bg) bar_count += 0.33 self.setCentralWidget(view) if __name__ == '__main__': app = QApplication(sys.argv) demo = CtxPlotBar() demo.show() sys.exit(app.exec_())
运行截图
鼠标放大后