繁体   English   中英

在python中对Colormesh图进行动画处理

[英]Animating the Colormesh plot in python

在这里,我做了一个简单的程序,它通过从矩阵(NxN)'config'中获取值来填充2-D网格,该矩阵具有从(-1到1)的随机值。 我希望此图具有动画效果,以便当我在Matrix中更新这些值时,图也会得到更新。 我看过很少的动画代码,但是不是我想要的。 有人可以指出我正确的方向。 谢谢。

import numpy as np
from numpy.random import rand
import matplotlib.pyplot as plt
import matplotlib.animation as animation

f = plt.figure(figsize=(15, 15), dpi=80);
N=10
n_=1
i=1

config = 2*np.random.uniform(2, size=(N,N))-3
print(config)

X, Y = np.meshgrid(range(N), range(N))
#print(X)

plt.pcolormesh(X, Y, config, cmap=plt.cm.RdBu);
plt.title('Time=%d' % i);
plt.axis('tight')
plt.show()

我们可以用(TxNxN)制作一个新的矩阵/张量“ animate_grid”,即每个时间步长T的NxN个矩阵的更新值(甚至是任意值)。

 T=0 
[[-0.244608 -0.71395497 -0.36534627]  
[-0.44626849 -0.82385746 -0.74654582]
[ 0.38240205 -0.58970239  0.67858516]]
T=1
[[-0.46084 -0.3413957 -0.3453345627]
[-0.43626849 -0.6385746 -0.4654582]
[ 0.8240205 -0.8970239  0.37858516]]
T=2 
[[-0.4546084 -0.9565497 -0.534627]
[-0.2546849 -0.8345746 -0.465654582]
[ 0.4460205 -0.4660239  0.6858516]]

等等等

动画将与其他任何情况一样工作。 您需要一个用于更新绘图的函数和一个FuncAnimation实例,该实例会定期调用此更新函数。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
N=10
T=17
config = np.random.rand(T, N,N)
X, Y = np.meshgrid(range(N+1), range(N+1))

fig = plt.figure(figsize=(5, 5), dpi=80)
plt.pcolormesh(X, Y, config[0,:,:], cmap=plt.cm.RdBu)
plt.title('Time=%d' % 0)

def update(i):
    plt.pcolormesh(X, Y, config[i,:,:], cmap=plt.cm.RdBu)
    plt.title('Time=%d' % i)

ani = animation.FuncAnimation(fig, update, frames=config.shape[0], 
                              interval = 100, repeat = True)

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM