通常我们使用set_data或set_3d_properties在matplotlib中更改动画的x,y,z数据。那么你也可以改变线条颜色吗?以下是随着行数的增加随机绘制线条。如果有很多行,我看不到发生了什么,但我想显示最后一刻添加了哪一行。例如,在某个时刻,只有一行是蓝色,而所有其他行是黑色。然后在下一帧中,新行添加蓝色,然后前一个蓝色线变为黑色。
以下是添加线程序。我以前做过但我不记得我是怎么做的。但是在这个时候,我想保留下面动画程序的结构
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from random import random
fig=plt.figure()
ax=fig.gca(projection='3d')
MAX=100
lines=[]
for i in range(MAX):
lines.append(ax.plot([],[],[], color='k')[0]) # <type 'list'>, list of plot
def init():
for i in range(MAX):
lines[i].set_data([],[])
lines[i].set_3d_properties([])
return lines
def update(num):
xi=random()
yi=random()
zi=random()
xf=random()
yf=random()
zf=random()
x=[xi,xf]
y=[yi,yf]
z=[zi,zf]
lines[num].set_data(x,y)
lines[num].set_3d_properties(z)
return lines
mc_ani=animation.FuncAnimation(fig, update, 10, init_func=init, interval=1000, blit=False, repeat=True)
ax.set_xlim3d([-0.1, 1.1])
ax.set_ylim3d([-0.1, 1.1])
ax.set_zlim3d([-0.1, 1.1])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()