[英]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.