Python 关闭循环生成的所有图形
我正在循环中绘制图形,例如:Python 关闭循环生成的所有图形,python,matplotlib,Python,Matplotlib,我正在循环中绘制图形,例如: for i in range(100): plt.plot(x, y) plt.show() for i in range(len(100)): if (#some condition): break plt.plot(x, y) plt.show() 在循环中,我关闭当前的数字,然后绘制下一个图。我的问题是,因为我有太多的数字,如果我想在整个绘图过程中退出整个过程,有没有办法做到?< /P> 提前谢谢 更
for i in range(100):
plt.plot(x, y)
plt.show()
for i in range(len(100)):
if (#some condition):
break
plt.plot(x, y)
plt.show()
在循环中,我关闭当前的数字,然后绘制下一个图。我的问题是,因为我有太多的数字,如果我想在整个绘图过程中退出整个过程,有没有办法做到?< /P> 提前谢谢
更新:终于得到我想要的: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
我不确定我是否理解这个问题。如果要关闭所有图形,请尝试在for循环中启用
break
语句。break
将通过if
语句访问。例如:
for i in range(100):
plt.plot(x, y)
plt.show()
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
谢谢Woody,我想以交互方式关闭图形,所以如果我按下某个按钮,只需关闭图形,然后打破循环。但是现在我想我可以实现一些东西,检查我按下了哪个按钮,然后在if语句中检查它。@calBear是的,这应该可以做到!此外,您可能希望尝试使用多种方法来实现这一点。也就是说,有一个方法可以绘图,一个方法可以关闭,还有一个方法可以相互对话。如果这些都有用,请随意接受这个答案,这样问题就可以结束了:)是的,我认为这行不通,因为我想以交互方式结束它。不过还是要谢谢你!