更新matplotlib动画中的tripcolor图

时间:2015-08-31 16:46:17

标签: python animation matplotlib

我一直在尝试从图yieldmatplotlib创建一个动画。假设我有

tripcolor

如何在每次动画迭代后更改C的值?

非常感谢,

1 个答案:

答案 0 :(得分:1)

field保证是matplotlib.collections.Collection基类的一个实例,它有助于为这种情况定义set_array()方法。

在动画的每次迭代中,只需将C的新值传递给field.set_array()方法即可。假设你使用FuncAnimation类来制作动画,就像你想要的那样,这会减少为:

fig = plt.figure()
ax = plt.subplot(111)

field = ax.tripcolor(tri, C)

def update_tripcolor(frame_number):
    # Do something here to update "C"!
    C **= frame_number   # ...just not this.

    # Update the face colors of the previously plotted triangle mesh.
    field.set_array(C)

# To triangular infinity and beyond! (Wherever that is. It's probably scary.)
FuncAnimation(fig, update_tripcolor, frames=10)

另一方面,更新tri要困难得多。虽然这个问题没有尝试这样做,但是明显的读者可能会好奇地知道你基本上必须删除,重新创建并重新添加整个三角形网格(即field)到这个数字上#39; s轴。当然,这既低效又痛苦。 (欢迎来到Matplotlib。人口:你。

field.set_array()与您同在。