python生成一个实时更新显示折线图且图窗长度固定不变的代码
时间: 2024-02-07 10:04:08 浏览: 71
你可以使用Matplotlib中的动态图功能来实现实时更新显示折线图。这里给出一个简单的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 设置图窗大小和限制的数据范围
fig, ax = plt.subplots(figsize=(8,6))
ax.set_xlim(0, 100)
ax.set_ylim(0, 1)
# 初始化折线图
line, = ax.plot([], [])
# 生成随机数据
def generate_data():
while True:
yield np.random.rand()
# 更新折线图
def update(frame):
ydata = list(line.get_ydata())
ydata.append(next(frame))
xdata = list(range(len(ydata)))
if len(ydata) > 100: # 限制折线图长度
ydata.pop(0)
xdata.pop(0)
line.set_data(xdata, ydata)
return line,
# 创建动态图
ani = FuncAnimation(fig, update, frames=generate_data, blit=True, interval=100)
# 显示图形
plt.show()
```
这段代码中,我们首先定义了一个图窗,设置了其大小和限制的数据范围。然后定义了一个折线图,用于显示数据。接着,我们生成了随机数据的无限迭代器,并在`update`函数中更新折线图的数据,并限制其长度不超过100个数据点。最后,使用`FuncAnimation`创建了一个动态图,并设置了更新间隔为100毫秒。最后,调用`plt.show()`显示图形。
阅读全文