用while循环绘图

时间:2017-01-24 12:41:18

标签: python matplotlib

我有一些像这样的x和y坐标:

x = [None, 5, 7, None, None, 9]
y = [1, 2, 3, 4, 5, 6]

我想要一个while循环依次遍历每个列表项并绘制圆形标记(如果它有xy坐标,然后绘图必须保持在那里,因为它继续绘制更多值,最终它将绘制列表中的每个值。

代码:

i = 0
while i < 100:
    plt.plot((b[i]), (a[i]), marker='o')
    plt.ion()
    plt.pause(1)
    i += 1

有些原因,似乎是在绘制标记然后它消失了,任何想法?

1 个答案:

答案 0 :(得分:3)

您的问题会提供列表xy,然后在循环中使用ab,因此我只会为{{1 }和a并假设你已经过滤了无人工作。

b

你只需要设置一次交互 - 而不是在循环中反复。但这不是问题的原因 - 只是说

a = [1, 5, 7, 1, 1, 9]
b = [1, 2, 3, 4, 5, 6]

我观察到的是点数正在显示 - 但是比例变化以显示新点 - 其他点在屏幕外。如果我缩小到足够的所有点都在那里。

您可能希望考虑一下您的轴刻度;

之类的东西
plt.ion()

for (x, y) in zip(a,b):
    plt.plot(x, y, marker = 'o')
    plt.pause(1)

应该使所有数据都适用于相同的情节而没有看似消失的点

enter image description here