如何通过键盘输入关闭python图?

时间:2014-04-06 20:38:35

标签: python matplotlib figure

我试图编写一个无限期显示数字的python程序,并在按下任何键盘键后关闭它。

实际上,python程序应该和这个Matlab代码一样:

t = 0:0.01:2;
s = sin(2 * pi * t);

plot(t,s)

pause
close

在python中,我可以绘制图形但键盘输入后没有任何反应。

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

#plt.ion()
fig = plt.figure()
plt.plot(t,s)
#plt.show()
plt.draw()

raw_input("PRESS ANY KEY TO CONTINUE.")
plt.close(fig)

到目前为止,我发现plt.close(fig)plt.show()无关。但是,当我使用plt.draw()时,plt.close(fig)正在关闭数字。然而,当我将raw_input("PRESS ANY KEY TO CONTINUE.")添加到我的程序中时,该图形根本没有出现。

我做错了什么?

我也尝试过plt.ion(),但没有成功。

2 个答案:

答案 0 :(得分:9)

我认为使用plt.waitforbuttonpress(0)可以解决使用raw_input()的问题:

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

fig = plt.figure()
plt.plot(t,s)
plt.draw()
plt.waitforbuttonpress(0) # this will wait for indefinite time
plt.close(fig)

答案 1 :(得分:5)

这样的事可能吗?

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)


fig = plt.figure()
plt.plot(t,s)
#plt.show()
plt.draw()
plt.pause(1) # <-------
raw_input("<Hit Enter To Close>")
plt.close(fig)