pyqtgraph plot画折线图,并标识最大值与最小值,用圆圈标识
时间: 2024-09-21 22:06:37 浏览: 33
PyQtGraph是一个强大的数据可视化库,用于Python,特别适用于科学计算和图形用户界面。要在PyQtGraph中绘制折线图并标记最大值和最小值,你可以按照以下步骤操作:
1. 首先,安装pyqtgraph,如果你还没有安装,可以使用pip命令:
```
pip install pyqtgraph
```
2. 导入所需的模块:
```python
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QTimer
import pyqtgraph as pg
```
3. 创建窗口并设置绘图区域:
```python
app = QApplication(sys.argv)
win = pg.GraphicsWindow()
view = win.addViewBox()
```
4. 准备数据(这里假设有一个包含x轴和y轴数据的列表):
```python
x_data = [...]
y_data = [...]
max_value = max(y_data)
min_value = min(y_data)
```
5. 绘制折线图:
```python
curve = view.plot(x=x_data, y=y_data, pen='r') # 使用红色笔触绘制曲线
```
6. 添加标记最大值和最小值的点和文本:
```python
circle = pg.Circle((x_data.index(max_value), max_value), radius=5, pen=None, brush=(0, 255, 0)) # 绿色圆圈表示最大值
view.addItem(circle)
text_max = pg.TextItem(str(max_value), color=(0, 255, 0))
text_max.setPos(x_data.index(max_value) + 5, max_value - 5) # 提高一点位置避免覆盖圆圈
view.addItem(text_max)
circle_min = pg.Circle((x_data.index(min_value), min_value), radius=5, pen=None, brush=(255, 0, 0)) # 红色圆圈表示最小值
view.addItem(circle_min)
text_min = pg.TextItem(str(min_value), color=(255, 0, 0))
text_min.setPos(x_data.index(min_value) + 5, min_value + 5) # 提高一点位置避免覆盖圆圈
view.addItem(text_min)
```
7. 设置窗口循环更新:
```python
timer = QTimer()
timer.timeout.connect(lambda: None) # 这里只是一个占位符,实际上你需要根据应用需要更新数据
timer.start(1000) # 每秒更新一次
```
8. 启动事件循环:
```python
if __name__ == '__main__':
win.show()
sys.exit(app.exec_())
```
阅读全文