2017-04-07 40 views
1

使用Matplotlib和for循环,是否可以在给定的时间段内显示绘图,然后在for循环完成时关闭绘图?Matplotlib:使用循环显示和关闭绘图

我曾尝试以下,但情节简单地保持打开状态,循环就不会结束:

import matplotlib.pyplot as plt 
import psychopy 

x = [34.00,108.00,64.00,99.00,99.00,51.00] 
y = [5.00,17.00,11.00,8.00,14.00,5.00] 

scatter(x, y, color = "black") 

clock = core.Clock() 

while clock.getTime() < 10.0: 
    plt.show() 

plt.close() 

感谢

+0

你只需要调用'show'一次,使用'time.sleep'然后'close' –

+0

我试过(plt.show().. time.sleep(3 ).. plt.close()),但情节只是挂起,代码不会继续。 – Jon

+0

在这两种情况下,你只需要'show'一次,所以把它从循环中取出 –

回答

2

您可以组合使用交互模式plt.ion()plt.pause()

E.g.展现你的窗口5秒:

import matplotlib.pyplot as plt 

x = [34.00,108.00,64.00,99.00,99.00,51.00] 
y = [5.00,17.00,11.00,8.00,14.00,5.00] 

plt.scatter(x, y, color = "black") 
plt.ion() 
plt.draw() 
plt.pause(5)