Если вы обновите данные и проведете отрисовку в цикле, вы сможете прервать их. Вот пример (который рисует неподвижный круг, а затем перемещает линию по периметру):
from pylab import *
import time
data = [] # make the data
for i in range(1000):
a = .01*pi*i+.0007
m = -1./tan(a)
x = arange(-3, 3, .1)
y = m*x
data.append((clip(x+cos(a), -3, 3),clip(y+sin(a), -3, 3)))
for x, y in data: # make a dynamic plot from the data
try:
plotdata.set_data(x, y)
except NameError:
ion()
fig = figure()
plot(cos(arange(0, 2.21*pi, .2)), sin(arange(0, 2.21*pi, .2)))
plotdata = plot(x, y)[0]
xlim(-2, 2)
ylim(-2, 2)
draw()
time.sleep(.01)
Я ввел команду time.sleep(.01)
, чтобы быть уверенным, что смогу прервать выполнение, но в моих тестах (под управлением Linux) это не было необходимо.