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

Bor*_* L. 13 python matplotlib figure

我正在尝试编写一个python程序,它显示无限时间的数字,并在按下任何键盘键后关闭它.

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

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

plot(t,s)

pause
close
Run Code Online (Sandbox Code Playgroud)

在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)
Run Code Online (Sandbox Code Playgroud)

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

我究竟做错了什么?

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

Gui*_*ull 11

我认为使用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)
Run Code Online (Sandbox Code Playgroud)

  • 如果我们有一些非零的时间数字:“plt.waitforbuttonpress(1)”,则此方法有效。为零,它只是继续等待..并且不起作用..对我有用的是: `plt.waitforbuttonpress(1); 输入(); plt.close(图)` (2认同)

Jor*_*ley 6

这样的事可能吗?

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)
Run Code Online (Sandbox Code Playgroud)