我试图编写一个无限期显示数字的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()
,但没有成功。
答案 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)