我在matplotlib中创建了一个动画,它基本上是一个以混乱方式在网格中移动的点。当前点后跟其前N个位置的尾部。现在,尾部是用纯色绘制的,但我想要做的是用它的每个N段绘制它,其中不透明度从前一段减少一点,这样,在尾部的末端,颜色几乎完全消失了。
绘图函数似乎不允许将多种颜色传递给它以顺序方式应用于每个段但是,是否有另一种方法可以实现这一点,而不涉及为每个段进行单独的绘图调用使用不同的颜色不透明度设置?
这是为每个帧调用的核心动画函数。我每10帧将尾巴设置为不同的颜色。颜色只需循环显示5种不同的颜色。
def animate(i):
ip1 = i + 1
thisx = [0, x1[i], x2[i]]
thisy = [0, y1[i], y2[i]]
phi1 = 180.0 * math.atan2(y1[i],x1[i])/math.pi
phi2 = 180.0 * math.atan2(y2[i],x2[i])/math.pi
line.set_data(thisx, thisy)
x = x2[i-1:max(0,i-20):-1]
y = y2[i-1:max(0,i-20):-1]
tail.set_data(x, y)
text = ('\n').join( [
time_template%(i*dt),
'Phi 1 = %6.1f deg' % phi1,
'Phi 2 = %6.1f deg' % phi2 ] )
time_text.set_text(text)
if (ip1)%10 == 0:
tail.set_color(next(g_tail_colors))
return line, time_text, tail
这是动画的一帧