📜  PyQtGraph – 折线图(1)

📅  最后修改于: 2023-12-03 15:33:55.473000             🧑  作者: Mango

PyQtGraph - 折线图

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可以轻松绘制折线图,并提供了很多交互式和样式设置的功能。这使得我们可以方便地可视化数据,并更加深入地了解数据之间的关系。

参考资料