PyQtGraph是一个强大的绘图库,用于创建实时交互式2D和3D图形。它是基于PyQt库开发的,因此它可以与PyQt应用程序紧密集成,并且拥有许多强大的特性,如:
-
快速:PyQtGraph使用高效的绘图算法,并且可以处理大量的数据,以提供流畅的图形显示。
-
实时显示:PyQtGraph可以创建实时交互式图形,您可以轻松地通过图形对数据进行交互。
-
丰富的图形类型:PyQtGraph支持许多常见的图形类型,例如折线图、柱状图、饼图等。它还支持3D图形绘制,例如3D曲面图、3D点图等。
-
可定制:PyQtGraph提供了许多可定制选项,您可以通过调整颜色、标签、图形大小等来定制图形。
-
多平台支持:PyQtGraph可以在Windows、Linux和Mac OS X等多个操作系统上运行,您可以在多个平台上使用它。
PyQtGraph是一个功能强大、易于使用和实时显示的绘图库,它适用于许多领域,例如科学、工程、计算机视觉等
1.安装模块
cmd命令行安装模块。
pip install pyqtgraph
pip install PyQt5
2.第一个简单的例子
import pyqtgraph as pg
# 定义一个list,通过pg画出来
l = ([1,2,3,4,5,6,7,8,9,10])
pg.plot(l) # data can be a list of values or a numpy array
运行结果如下:
3.制作一个简单的窗口部件
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyqtgraph as pg
from pyqtgraph.Qt import QtGui
# 启动Qt 初始化
app = QtGui.QApplication([])
# 定义顶层窗口
w = QtGui.QWidget()
# 创建窗口部件
btn = QtGui.QPushButton('确认')
text = QtGui.QLineEdit('文本区域')
listw = QtGui.QListWidget()
plot = pg.PlotWidget()
# 创建网格布局以管理小部件的大小和位置
layout = QtGui.QGridLayout()
w.setLayout(layout)
# 将小部件添加到布局的正确位置
layout.addWidget(btn, 0, 0) # button goes in upper-left
layout.addWidget(text, 1, 0) # text edit goes in middle-left
layout.addWidget(listw, 2, 0) # list widget goes in bottom-left
layout.addWidget(plot, 0, 1, 3, 1) # plot goes on right side, spanning 3 rows
# 将小部件显示为新窗口
w.show()
# 启动Qt事件循环
app.exec_()
运行结果如下
4.画一个正弦波图像
使用PyQt绘制,通过np的empty创建空数组,使用数组arr赋值给pg.plot。
import pyqtgraph as pg
import numpy as np
import math
app = pg.QtGui.QApplication([])
# 360行1列
arr = np.empty((360,1))
for angle in range (0,359):
# 角度转弧度
theta = angle*(np.pi/180)
# 赋sin值
arr[angle,0] = math.sin(theta)
pg.plot(arr[:,0])
app.exec_()
##app = pg.QtGui.QApplication([])
### 1行360列
##arr = np.empty((1,360))
##for angle in range (0,359):
## # 角度转弧度
## theta = angle*(np.pi/180)
## # 赋sin值
## arr[0,angle] = math.sin(theta)
##pg.plot(arr[0,:])
##app.exec_()
运行结果如下: