📅  最后修改于: 2023-12-03 15:33:55.473000             🧑  作者: Mango
PyQtGraph是一个用于python编程语言的交互式可视化工具包,它提供了很多常用的图形和绘图工具,其中之一就是折线图。
首先,需要安装PyQtGraph,可以使用pip进行安装:
pip install pyqtgraph
下面是一个基本的绘制折线图的实例:
import sys
import numpy as np
import pyqtgraph as pg
from PyQt5.QtWidgets import QApplication, QWidget
# 创建数据
x = np.arange(0, 10, 0.1)
y = np.sin(x)
# 创建绘图窗口
app = QApplication(sys.argv)
win = pg.GraphicsWindow(title="折线图")
# 创建一个绘图区域,添加到窗口中
p = win.addPlot(title="折线图")
# 绘制折线图
p.plot(x, y, pen='r')
# 显示窗口
win.show()
sys.exit(app.exec_())
这个实例中,我们首先定义了x和y坐标轴的数据,然后创建了一个绘图窗口,接着创建了一个绘图区域并添加到窗口中,最后绘制了折线图并显示窗口。
可以通过绘图区域中的方法来设置折线图的样式,例如线型、线宽等:
# 设置线型为点划线,线宽为5
p.plot(x, y, pen=pg.mkPen('b', width=5, style=QtCore.Qt.DashLine))
PyQtGraph还提供了很多交互工具,可以方便用户对绘图进行交互和操作。例如,可以使用鼠标拖拽、放大缩小等操作:
# 启用放大缩小功能
p.setMouseEnabled(x=True, y=True)
# 设置拖拽功能(只能沿X轴方向拖拽)
p.setDownsampling(auto=True, method='mean')
p.setClipToView(True)
p.setRange(xRange=[0, 10], yRange=[-1, 1])
# 设置十字光标
vLine = pg.InfiniteLine(angle=90, movable=False)
hLine = pg.InfiniteLine(angle=0, movable=False)
p.addItem(vLine, ignoreBounds=True)
p.addItem(hLine, ignoreBounds=True)
proxy = pg.SignalProxy(p.scene().sigMouseMoved, rateLimit=60, slot=mouseMoved)
在这个实例中,我们启用了放大缩小功能,并设置了拖拽功能(只能沿X轴方向拖拽)。还设置了一个十字光标,通过鼠标移动可以让光标响应,显示出对应的x,y值。
通过PyQtGraph可以轻松绘制折线图,并提供了很多交互式和样式设置的功能。这使得我们可以方便地可视化数据,并更加深入地了解数据之间的关系。