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

7

我希望在实时绘图过程中能够操纵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])
1个回答

2

你需要在if语句中更新x_axis_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中,仅留下一个更新。


不客气。顺便说一下,你的最小工作示例做得很好,我们很少看到这样的! - Ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接