如何消除matplotlib动画中的压缩瑕疵?

如何消除matplotlib动画中的压缩瑕疵?,matplotlib,animation,compression,artifacts,Matplotlib,Animation,Compression,Artifacts,我正试图在matplotlib中创建一个动画,我看到了。显示平滑的连续颜色,而。如何在没有这些压缩瑕疵的情况下保存动画?我从中获取了一些writer参数,但它们没有解决问题 您可以在中运行代码,也可以在此处查看代码: 将numpy导入为np 从matplotlib导入pyplot作为plt 从matplotlib导入动画 images=np.array([ np.tile(np.linspace(0,1500)、(50,1)), np.tile(np.linspace(1,0500)、(50,1

我正试图在matplotlib中创建一个动画,我看到了。显示平滑的连续颜色,而。如何在没有这些压缩瑕疵的情况下保存动画?我从中获取了一些
writer
参数,但它们没有解决问题

您可以在中运行代码,也可以在此处查看代码:

将numpy导入为np
从matplotlib导入pyplot作为plt
从matplotlib导入动画
images=np.array([
np.tile(np.linspace(0,1500)、(50,1)),
np.tile(np.linspace(1,0500)、(50,1)),
])
fps=1
图=plt.图(frameon=False)
ax=plt.轴(图[0,0,1,1])
图添加_轴(ax)
艺术家=[[ax.imshow(image,animated=True,cmap='jet')]用于图像中的图像]
动画=动画。艺术动画(图,艺术家,间隔=1000/帧,重复延迟=1000)
writer=animation.pillowriter(fps=fps,比特率=500,codec=“libx264”,额外参数=['-pix\u fmt','yuv420p']))
动画保存('./test_animation.gif',writer=writer)
ax.imshow(图像[0],动画=True,cmap='jet');

谢谢你的建议

我找到了一个解决方案,可以生成没有伪影的gif,并在Colab中实现了这一点(部分要感谢@JohanC的评论)

首先,我需要使用FFMpeg将动画保存为mp4视频。这将创建无压缩瑕疵的高质量视频

writer = animation.FFMpegWriter(fps=fps)
anim.save('./test_animation.mp4', writer=writer)
然而,我想要的是gif,而不是视频,我希望能够在Google Colab中实现这一点。运行以下命令将转换动画,同时避免压缩瑕疵。(其中一些参数来自


我已经更新了。

您需要将其保存为mpeg格式而不是动画gif。动画gif仅支持256种不同颜色的整个动画。谢谢,@JohanC。当我尝试将其保存为mpeg格式时,我收到了一个
KeyError
。看起来使用
FFMpegWriter
而不是
pillowriter
解决了这个问题(即使保存为gif),但我无法在Google Colab上使用
FFMpegWriter
!ffmpeg -i test_animation.mp4 -vf "split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 test_animation.gif