在python中设置Colormesh绘图的动画

2024-04-19 12:10:08 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里,我制作了一个简单的程序,它通过从矩阵(NxN)“config”中获取值来填充二维网格,该矩阵的随机值为(-1到1)。 我希望这个绘图是动画,这样当我更新矩阵中的这些值的绘图得到更新。 我看到了一些动画代码,但不是我所看到的。 有人能给我指出正确的方向吗。 谢谢您。你知道吗

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)生成一个新的矩阵/张量“动画网格”,即每个时间步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]]

等等等等


Tags: importnumpyconfig网格绘图matplotlibasnp
1条回答
网友
1楼 · 发布于 2024-04-19 12:10:08

动画的工作原理与其他任何情况一样。您需要一个更新绘图的函数和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()

enter image description here

相关问题 更多 >