首页 > 解决方案 > 我正在尝试使用两个端点 (x1,y1)(x2,y2) 为一条线设置动画,但 line.set_data() 函数似乎没有更新 x 和 y 坐标

问题描述

我已经使用 .set_data() 方法/函数在每一帧之后更新线的坐标。x1,y1 值正在更新,但在线图中没有更新。我在这里做错了什么?

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np

fig = plt.figure()
fig.set_dpi(100)
fig.set_size_inches(6,6)
ax=plt.axes(xlim=(-10,10), ylim=(-10,10))

l1, = ax.plot([0.0, 1.0],[0.0,5.0], color = 'b', linewidth = 1)

def animate(i):
        x1=np.sin(np.radians((i)+90))
        y1=np.cos(np.radians((i)+90))
        l1.set_data=([0,x1],[0,y1])
        #print (x1,y1)
        return l1,

anim = animation.FuncAnimation(fig, animate,  frames=360, interval=20, blit=True)

plt.show()

标签: pythonmatplotlibanimation

解决方案


你写l1.set_data=([0,x1],[0,y1])的。那是错字吗?这应该是(注意删除 = 符号):

l1.set_data([0,x1],[0,y1])


推荐阅读