Я черчение фигуры в цикле, например:Закройте все фигуры, порожденную петлей
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
Спасибо Вуди, я хочу закрыть фигуры в интерактивном режиме, поэтому, если я нажму кнопку, просто закрою фигуры и сломаю петлю. Но теперь я думаю, что могу что-то реализовать, чтобы проверить, какую кнопку я нажал, и затем проверить его в инструкции if. – calBear
@calBear Да, это должно сделать трюк! Кроме того, вы можете попытаться сделать это несколькими способами. То есть, есть один метод, который показывает, один метод, который закрывается, и один метод, который говорит друг с другом. Если это полезно, не стесняйтесь принять этот ответ, поэтому вопрос можно закрыть :) –
Да, я буду использовать этот трюк! Благодаря! – calBear