简体   繁体   中英

How to I make this program stop running?

This is the code, if you are using spyder you have to type %matplotlib in the console to get it working. The animation stops running but still loads of numbers appear in the console. How do I just call an end to the code?

import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
import numpy as np 
plt.style.use('dark_background')

fig = plt.figure() 
ax = plt.axes(xlim=(-50, 50), ylim=(-50, 50)) 
line, = ax.plot([], [], lw=2) 

# initialization function 
def init(): 
    # creating an empty plot/frame 
    line.set_data([], []) 
    return line, 

xdata, ydata = [], [] 
x = 0
y = 0

# animation function 
def animate(i):
    print(i)
    t = i*0.1
    y = 0
    x = t
    if x > 10 and y == 0:
        i = 0
        x = 10
        y = t - 10
    if y >10 and x == 10:
        x = 10 - (t-20) 
        y = 10
    if (y < 10 or y == 10) and x <= 0 and y!=0:
        y = 10 - (t-30)
        x = 0
    if y<0:
        plt.stop()
        exit()
    print(y)
    xdata.append(x)
    ydata.append(y)
    line.set_data(xdata, ydata)
    return line,
        


# setting a title for the plot 
plt.title('Creating a moving point') 
# hiding the axis details 
plt.axis('off') 

# call the animator  
anim = animation.FuncAnimation(fig, animate, init_func=init, 
                            frames=500, interval=20, blit=True, repeat=False) 

If you want to stop the animation, then in the function set, for example, it will stop at iteration number 15:

def animate(i):
   if i == 15:
      anim.event_source.stop()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM