2017-01-24 344 views
0

我有一些x和y坐标这样绘制:与while循环

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 

某种原因,它似乎画出标记,然后消失,任何想法?

+0

你想让它每个点后暂停所有的数据适合在同一醚:情节?你可以简单地给它提供预处理元素的列表。 –

+0

假设复制间隔为1秒的数据,因此需要暂停显示。 – TrippinDumplings

回答

3

您的问题给出了名单xy然后在循环使用ab,所以我就做了的东西为ab,并假设你有过滤出无的工作的。

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) 

我观察到的是,点显示出来 - 但规模的变化来显示新的点 - 别人是关闭屏幕。如果我缩小足够的所有点实际上在那里。

您不妨对您的坐标轴进行一些思考;像

plt.xlim([min(a)-1, max(a)+1]) 
plt.ylim([min(b)-1, max(b)+1]) 

应该不加分似乎消失

enter image description here