📅  最后修改于: 2023-12-03 15:04:01.279000             🧑  作者: Mango
PyQtGraph是一个纯Python的绘图库,专门用于科学应用和工程应用,旨在提供高效和易于使用的图形绘制功能。它是一个基于PyQt和NumPy的库,可以用于快速生成2D图形界面,基于OpenGL可视化3D数据。
移动误差条形图是误差条形图的一种,其特点是在条形图中间添加一个移动标记,并根据标记位置自动调整误差条的位置。这种图表通常用于展示连续数据的变化趋势,如股票价格或气温变化曲线。
使用pip安装:
pip install pyqtgraph
下面是一个简单的移动误差条形图示例,其中x、y数据分别表示时间和股票价格,误差条表示价格波动范围,移动标记表示当前时间点:
import pyqtgraph as pg
import numpy as np
# 随机生成x、y数据
x = np.linspace(0, 10, 100)
y = np.sin(x) + np.random.normal(size=100) * 0.1
# 随机生成误差条数据
yerr = np.random.normal(size=100) * 0.1
# 创建图形界面
app = pg.mkQApp()
win = pg.GraphicsWindow()
win.setWindowTitle("Moving Error Bar Plot")
# 添加画布
p = win.addPlot()
p.setTitle("Stock Price vs Time")
p.setLabel("bottom", "Time", units="s")
p.setLabel("left", "Stock Price", units="$")
# 添加移动标记
marker = pg.InfiniteLine(pos=5, angle=90, movable=True)
p.addItem(marker)
# 添加误差条形图
errorbar = pg.ErrorBarItem(x=x, y=y, height=yerr, pen={'color': 'w', 'width': 1})
p.addItem(errorbar)
# 定义更新的函数
def update():
# 获取移动标记的位置
pos = marker.value()
# 根据移动标记位置更新误差条位置和长度
errorbar.setData(x=x, y=y, height=yerr, left=np.clip(x - pos, 0, np.inf), right=np.clip(pos - x, 0, np.inf))
# 每50毫秒更新一次
timer = pg.QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
# 启动事件循环
pg.QtGui.QApplication.instance().exec_()