在matplotlib中更改动画期间的线条颜色

时间:2017-03-03 08:51:54

标签: python animation matplotlib colors

通常我们使用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()

0 个答案:

没有答案