在实时绘图期间在 matplotlib 中移动 x 轴 (python)

Moving x-axis in matplotlib during real time plot (python)

我想在实时绘图期间操纵 x 轴,以便一次最多可以看到 10 个样本。 似乎 plt.axis() 在情节初始化后只更新一次。有什么建议么?提前致谢!

import numpy as np
import matplotlib.pyplot as plt

# Initialize
x_axis_start = 0
x_axis_end = 10

plt.axis([x_axis_start, x_axis_end, 0, 1])
plt.ion()

# Realtime plot
for i in range(100):
    y = np.random.random()
    plt.scatter(i, y)
    plt.pause(0.10)
    # print(i)

    if i%10 == 0 and i>1:
        # print("Axis should update now!")
        plt.axis([x_axis_start+10, x_axis_end+10, 0, 1])

您必须更新 if 语句中的 x_axist_startx_axis_end

if i%10 == 0 and i>1:
    print("Axis should update now!")
    x_axis_start += 10
    x_axis_end += 10
    plt.axis([x_axis_start, x_axis_end, 0, 1])

这就是诀窍! :)

说明:您只向两个参数添加了一次 10。最后你总是把 10 加到 0 和 10 上,只剩下一个更新。