关闭循环生成的所有数字

时间:2014-11-13 02:53:22

标签: python matplotlib

我正在循环中绘制数字,例如:

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

2 个答案:

答案 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")