python画折线图,实现折线图实时更新,数据限制在100条,超过100条,覆盖最早一条,加入最新的一条,x轴和y轴同步都更新,且y轴最大值和最小值设置未2和5
时间: 2024-02-04 12:04:16 浏览: 19
下面是一个基于 `matplotlib` 库的 Python 实时更新折线图的示例代码,其中数据限制在100条,超过100条时会覆盖最早的一条数据,同时加入最新的一条数据。
```python
import matplotlib.pyplot as plt
from collections import deque
import random
# 初始化数据和图形
data = deque([0]*100, maxlen=100)
fig, ax = plt.subplots()
line, = ax.plot(data)
# 设置坐标轴范围和标签
ax.set_ylim(2, 5)
ax.set_xlim(0, 100)
ax.set_xlabel('Time')
ax.set_ylabel('Value')
# 实时更新折线图
while True:
# 生成新的数据
new_data = random.uniform(2, 5)
data.append(new_data)
# 更新折线图
line.set_ydata(data)
plt.draw()
plt.pause(0.1)
```
其中,`deque` 是 Python 内置的双端队列数据结构,我们可以使用它来限制数据的长度,并实现数据的自动覆盖。
在每次更新数据时,我们都会调用 `line.set_ydata(data)` 方法来更新折线图。`plt.draw()` 方法用于重新绘制整个图像,`plt.pause(0.1)` 方法用于暂停程序一段时间,以便我们能够实现实时更新的效果。