我需要动画(至少)两个三维线。我有每个坐标的x,y,z坐标列表(第二个标记为xj,yj,zj)。我试着把这个答案作为一个指导方针,但没能成功。以下是我的伪值代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d as ax3d
from matplotlib import animation
x=[1,2,3,4,5]
y=[1,2,3,4,5]
z=[1,2,3,4,5]
xj = [5,4,3,2,1]
yj = [5,4,3,2,1]
zj = [5,4,3,2,1]
N=len(x)
fig = plt.figure()
ax1 = ax3d.Axes3D(fig)
line, = ax1.plot([], [], lw=2, linestyle= "-")
ax1.set_xlim(0,6)
ax1.set_ylim(0,6)
ax1.set_zlim(0,6)
ax1.set_xlabel("x")
ax1.set_ylabel("y")
ax1.set_zlabel("z")
ax1.text2D(0, 0, "Title", transform=ax1.transAxes)
plotlays, plotcols = [2], ["orange","black"]
lines = []
for index in range(2):
lobj = ax1.plot([],[],lw=2,color=plotcols[index])[0]
lines.append(lobj)
def init():
for line in lines:
line.set_data([],[])
line.set_3d_properties([])
return lines
def animate(i):
A1 = xj[:i]
B1 = yj[:i]
C1 = zj[:i]
A2 = x[:i]
B2 = y[:i]
C2 = z[:i]
xlist = [A1, A2]
ylist = [B1, B2]
zlist = [C1, C2]
for lnum,line in enumerate:
line.set_data(xlist[lnum], ylist[lnum])
line.set_3d_properties(zlist[lnum])
return lines
anim = animation.FuncAnimation(fig, animate,init_func=init, frames=N , interval=5, blit=True)
plt.show()
我得到的只是一张空白图表然后就崩溃了。我不知道问题出在哪里。任何帮助都将不胜感激。在
目前没有回答
相关问题 更多 >
编程相关推荐