Matplotlib FuncAnimation 只显示一帧

Matplotlib FuncAnimation only shows one frame

我正在尝试使用 FuncAnimation 模块制作动画,但我的代码只生成一帧。看起来它更新了正确的东西 (k) 并继续播放适当数量的帧的动画,但每一帧都显示 k=0 的第一张图像。

def plotheatmap(u_k, k):
    # Clear the current plot figure
    plt.clf()

    plt.title(f"Temperature at t = {k*dt:.3f} unit time")
    plt.xlabel("x")
    plt.ylabel("y")

    # This is to plot u_k (u at time-step k)
    plt.pcolormesh(u_k, cmap=plt.cm.jet, vmin=0, vmax=4)
    plt.colorbar()

def animate(k): 
    plotheatmap(convert(U)[k], k)


anim = animation.FuncAnimation(plt.figure(), animate, interval=200, frames=M+1)

由于您没有提供可重现的示例,我将生成随机数据,您将根据自己的情况进行调整。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


x = np.arange(-0.5, 10, 1)
y = np.arange(4.5, 11, 1)

fig, ax = plt.subplots()
ax.set_xlabel("x")
ax.set_ylabel("y")

def plotheatmap(k):
    z = np.random.rand(6, 10)
    # clear the previously added heatmaps
    ax.collections.clear()
    # add a new heatmap
    ax.pcolormesh(x, y, z)
    ax.set_title(f"Temperature at t = {k:.3f} unit time")

def animate(k): 
    plotheatmap(k)

M = 10
anim = FuncAnimation(fig, animate, interval=200, frames=M+1)