【发布时间】:2016-10-22 03:04:40
【问题描述】:
我有一个循环脚本,它会绘制 (matplotlib),然后在绘制之后等待raw_input,然后再继续。这将允许我在循环继续之前删除我不想要/不需要的任何数字。
我尝试了几种不同的方法,但在继续之前它们似乎从未正确显示数字。
# test1
x = [1, 2, 3]
plt.ion() # turn on interactive mode
for loop in range(0,3):
y = np.dot(x, loop)
plt.figure()
plt.plot(x,y)
plt.show()
_ = raw_input("Press [enter] to continue.")
^ 这个绘制了图形窗口,但在循环结束之前什么都不显示
#test2
x = [1, 2, 3]
plt.ion() # turn on interactive mode
for loop in range(0,3):
y = np.dot(x, loop)
plt.figure()
plt.plot(x,y)
plt.pause(0.02)
plt.show()
_ = raw_input("Press [enter] to continue.")
^ 这张图很好地绘制了图形,但随后在 raw_input 打开时冻结并且图形窗口崩溃。完整循环完成后,窗口再次恢复正常(可用且可缩放)
我查看了plt.show(block=False) 命令,但没有任何进展
有什么想法吗?
注意这个问题与here 的问题非常相似,但是,正如您从上面的示例中看到的那样,我没有设法使用这些答案(建议plt.ion() 和plt.pause(0.2)
【问题讨论】:
-
你试过 plt.draw() 代替吗?
-
嘿@hashcode55,刚刚尝试过(用
plt.draw()替换plt.show()),它产生与test2相同的结果 -
我知道如何完成这项工作。我有同样的问题,并用 matplotlib TimedAnimation 解决了它。当新数据到达时,我可以流畅地更新图表。我现在没有时间,但我明天可以解释一下细节。
-
@mjp 有点奇怪,因为代码甚至没有替换
plt.show()在我的机器上运行良好。 -
@hashcode55 在您按下回车键继续循环之前,您可以看到这些数字并与它们交互而不会崩溃?我已清除所有内容并多次重新启动终端。不知道可能是什么问题。
标签: python python-2.7 matplotlib