You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提升Matplotlib导出动画GIF的分辨率?

Matplotlib导出GIF画质提升方案

可直接落地的操作步骤:

  • 调高画布基础分辨率
    创建画布时显式指定dpi(每英寸像素数)和画布尺寸,默认低DPI是画质模糊的核心原因:
# 示例参数可根据需要调整
fig = plt.figure(figsize=(8, 6), dpi=300)
  • 对齐GIF与PNG的绘图逻辑
    你当前PNG使用contourf+100级色阶实现精细渲染,而GIF使用的pcolormesh本身渲染精度更低,替换绘图函数即可拉平基础画质差异,同时建议固定全局色阶范围避免每帧色条跳变影响观感:
# 预先计算全局色值上下限,避免每帧色阶范围波动
vmin, vmax = psisquare.min(), psisquare.max()
X, Y = np.meshgrid(np.arange(0, Lx), np.arange(0, Ly))

def animate(k):
    k = k * 100
    plt.clf()
    # 替换为和PNG一致的contourf绘制逻辑
    plt.contourf(X, Y, psisquare[k, :, :], 100, cmap=plt.cm.viridis, vmin=vmin, vmax=vmax)
    plt.colorbar()
    plt.xlabel("x")
    plt.ylabel("y")
    plt.title(f"Densité de probabilité à t = {k*dt:.5f} s")
  • 保存时指定高清参数
    调用动画保存方法时显式传入DPI参数,避免写入器默认用低分辨率导出:
writergif = animation.PillowWriter(fps=30)
anim.save("2D_Schrodinger_Equation.gif", writer=writergif, dpi=300)
  • 可选进阶优化方案
    如果PillowWriter导出的画质仍无法满足需求,可以先将动画导出为PNG序列或者无损MP4文件,再通过FFmpeg工具转码为GIF,最终画质会远高于Matplotlib直接导出的效果。

内容的提问来源于stack exchange,提问作者Nathz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:39:01