在jupyter笔记本上使用matplotlib动画的分辨率?

时间:2017-04-26 17:51:35

标签: python matplotlib jupyter-notebook

我生成一个图像序列,使用matplotlib将其转换为电影。然后,这部电影在jupyter笔记本中显示。问题是在jupyter笔记本中显示的电影的分辨率相当差。我的代码如下所示:

import numpy as np
import tifffile
import matplotlib.pyplot as plt
from matplotlib import animation
from Ipython.display import HTML
stack = tifffile.imread("some image stack")
fig, ax = plt.subplots()
ax.set_axis_off()
im = ax.imshow(stack[:, :, 0])

def init():
    im.set_data(stack[:, :, 0])
    return [im]

def animate(i):
    im.set_array(stack[:, :, i])
    return [im]

anim = animation.FuncAnimation(fig, animate, init_func=init,
                               frames=stack.shape[2], interval=1000, blit=True)

HTML(anim.to_html5_video())

我在matplotlib.animation.FuncAnimation()或matplotlib.animation.to_html5_video()中找不到任何可以改变比特率或动画内容的选项。有没有办法提高分辨率?

1 个答案:

答案 0 :(得分:0)

您无法通过anim.to_html5_video()设置比特率,但如果使用anim.save(bitrate=1024)导出到磁盘,则可以设置。

请参见https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.animation.Animation.html#matplotlib.animation.Animation.save

对于高分辨率嵌入式视频,请使用:

HTML(anim.to_jshtml())