文章目录
-
- 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_())
运行截图

鼠标放大后
