在 matplotlib 中对散点和线进行动画处理

我试图在 matplotlib 中对线条和散点图进行动画处理,并编写了以下 Python 脚本:-


from a import Pitch, get_points

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.animation as animation


pitch = Pitch(line_color='grey', pitch_color='#121212', orientation='horizontal')

fig, ax = pitch.create_pitch() 


x_start, y_start = (50, 35)

x_end, y_end = (90, 45)


x_1, y_1 = get_points(x_start, y_start, x_end, y_end, 0.55)

x_2, y_2 = get_points(x_end, y_end, x_start, y_start, 0.55)


x = np.linspace(x_1, x_2, 50)

y = np.linspace(y_1, y_2, 50)


sc_1 = ax.scatter([], [], color="green", zorder=4)

line, = ax.plot([], [], color="crimson", zorder=4)

sc_2 = ax.scatter([], [], color="gold", zorder=4)



def animate(i):

    ## plot scatter point

    sc_1.set_offsets([x_start, y_start])


    ## plot line

    line.set_data(x[:i], y[:i])


    ## plot scatter point

    sc_2.set_offsets([x_end, y_end])


    return sc_1, line, sc_2


ani = animation.FuncAnimation(  

    fig=fig, func=animate, interval=20, blit=True, save_count=50)  


plt.show()


我想要的是:在红线到达黄点的位置后,黄色散点应该出现在图中。我的程序从一开始就显示黄点,我希望它在动画结束时弹出。

我可以在代码中添加/更新什么来进行所需的更改?


一只萌萌小番薯
浏览 127回答 1
1回答

萧十郎

我添加了简单的条件sc_2。    if i == len(x):        sc_2.set_offsets([x_end, y_end])我测试的代码:import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfig, ax = plt.subplots()x_start, y_start = (0, 0)x_end, y_end = (90, 90)x_1, y_1 = 0, 0x_2, y_2 = 90, 90plt.xlim((0, 100))plt.ylim((0,100))x = np.linspace(x_1, x_2, 50)y = np.linspace(y_1, y_2, 50)sc_1 = ax.scatter([], [], color="green", zorder=4)line, = ax.plot([], [], color="crimson", zorder=4)sc_2 = ax.scatter([], [], color="gold", zorder=4)def animate(i):    ## plot scatter point    sc_1.set_offsets([x_start, y_start])    ## plot line    line.set_data(x[:i], y[:i])    ## plot scatter point    if i == len(x):        sc_2.set_offsets([x_end, y_end])    return sc_1, line, sc_2ani = animation.FuncAnimation(    fig=fig, func=animate, interval=100, blit=True, save_count=50)plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python