我正在循环中绘制数字,例如:
for i in range(100):
plt.plot(x, y)
plt.show()
在循环中,我关闭当前的数字,然后绘制下一个数字。我的问题是,因为我有太多的数字,如果我想在绘图过程中退出整个过程,有没有办法做到这一点?
提前致谢。
更新:终于得到了我想要的东西:
import matplotlib.pyplot as plt
import random
#this dict will save the key your pressed
pressed_key = {}
def press(event):
print('press', event.key)
if event.key=='q':
#close the current figure
plt.close(event.canvas.figure)
pressed_key['key'] = event.key
for i in range(10):
#generate x, y for plotting
x = random.sample(range(1, 100), 20)
y = random.sample(range(1, 100), 20)
fig = plt.figure()
plt.plot(x,y,'o')
fig.canvas.mpl_connect('key_press_event', press)
plt.show()
#if the pressed key is q, then stop looping through figures
#note, here must use dict.get('key'), otherwise will have key error
if pressed_key.get('key') == 'q':
break
答案 0 :(得分:1)
执行此操作的最佳方法是在for循环中启用break
语句。可以通过break
语句访问if
。例如:
for i in range(len(100)):
if (#some condition):
break
plt.plot(x, y)
plt.show()
您可能正在寻找的条件可能是i==50
或任何可以实现您正在使用的其他变量的条件。在你的情况下,也许是有很多数字的时刻,你想关闭一些。也就是说,你可以使用
if(figure_count >=20):
close figures && break
答案 1 :(得分:0)
我不确定我理解这个问题。如果要关闭所有数字,请尝试plt.close("all")
。