我希望用户能够输入并通过特定的按键来停止循环。
from __future__ import print_function
import sys
import numpy as np
import matplotlib.pyplot as plt
def press(event):
print('press', event.key)
sys.stdout.flush()
if event.key == 'x':
visible = xl.get_visible()
xl.set_visible(not visible)
fig.canvas.draw()
if event.key == 'enter':
cnt.append(1)
cnt=[]
List=[]
fig, ax = plt.subplots()
fig.canvas.mpl_connect('key_press_event', press)
ax.plot(np.random.rand(12), np.random.rand(12), 'go')
xl = ax.set_xlabel('easy come, easy go')
ax.set_title('Press a key')
plt.show()
plt.waitforbuttonpress() #non specific key press!!!
result=cnt[0]+cnt[1]
我希望停止循环,等待用户按下Enter键后,再使用cnt继续代码。但如果我不加入plt.waitforbuttonpress()
,代码将运行并完成,但如果我加入plt.waitforbuttonpress()
,任何键盘或鼠标按键都将运行并结束整个代码。
plt.show
命令处停止的图形。由于mpl_connect('key_press_event')
已启动事件处理程序,因此我不需要plt.waitforbuttonpress()
。这可能与您的 matplotlib 或后端有关。使用plt.show(block=True)
是否有帮助?还要添加plt.ioff()
(关闭交互模式)。 - Ed Smith