Python 动画运动点误差
我是Python的初学者。我试图制作一个点在水平方向上移动的动画。但是,当我运行代码时,我收到以下错误:Python 动画运动点误差,python,animation,matplotlib,Python,Animation,Matplotlib,我是Python的初学者。我试图制作一个点在水平方向上移动的动画。但是,当我运行代码时,我收到以下错误: TypeError: 'PathCollection' object is not iterable 我不知道如何修理它 #---------------------------------------------------------------------- import numpy as np import matplotlib import matplotlib.pyplot a
TypeError: 'PathCollection' object is not iterable
我不知道如何修理它
#----------------------------------------------------------------------
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
Acc_11 = [1,2,3,4,6,7]
lenAcc11 = len(Acc_11)
Acc_12 = [2,2,2,2,2,2]
# Scatter plot
fig = plt.figure(figsize = (5,5))
ax = plt.axes()
scat = ax.scatter([],[])
#initial func
def init():
return scat
#animation func
def ani (i):
for i in range(0,lenAcc11):
acc_11 = Acc_11[i]
print (acc_11)
acc_11_pos = Acc_12[i]
print (acc_11_pos)
scat = scat.set_data(acc_11,acc_11_pos)
return scat
ani = FuncAnimation(fig, ani, init_func = init, interval = 10, blit =True)
plt.show()
#--------------------------------------------------------------------------
显示所有点
这显示了所有要点:
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
Acc_11 = [1,2,3,4,6,7]
Acc_12 = [2,2,2,2,2,2]
# Scatter plot
fig = plt.figure(figsize = (5,5))
def ani(coords):
return plt.scatter([coords[0]],[coords[1]], color='g')
def frames():
for acc_11_pos, acc_12_pos in zip(Acc_11, Acc_12):
yield acc_11_pos, acc_12_pos
ani = FuncAnimation(fig, ani, frames=frames, interval=1000)
plt.show()
仅显示一个移动点
一次只显示一个点:
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
Acc_11 = [1,2,3,4,6,7]
Acc_12 = [2,2,2,2,2,2]
# Scatter plot
fig = plt.figure(figsize = (5,5))
axes = fig.add_subplot(111)
axes.set_xlim(min(Acc_11), max(Acc_11))
axes.set_ylim(min(Acc_12), max(Acc_12))
point, = axes.plot([Acc_11[0]],[Acc_12[0]], 'go')
def ani(coords):
point.set_data([coords[0]],[coords[1]])
return point
def frames():
for acc_11_pos, acc_12_pos in zip(Acc_11, Acc_12):
yield acc_11_pos, acc_12_pos
ani = FuncAnimation(fig, ani, frames=frames, interval=1000)
plt.show()
在你的问题中包含完整的错误信息。关于散点图动画也有类似的问题,我希望这能解决你的问题。此外,散点图句柄没有
set_data
方法尝试使用set_array
。顺便问一下,我只想显示一个点,如何在绘制下一个点之前删除上一个点。我真的很感谢你的帮助!添加了第二个版本来执行此操作。