0

我想删除静态图像,只使用 Matplotlib 和赛璐珞在 Jupyter Notebook 上显示交互式图表。我了解到plt.close()应该位于倒数第二行。

在示例 1中,plt.close()倒数第二行运行良好,即仅显示交互式图表:

%matplotlib inline
import matplotlib.pyplot as plt
from celluloid import Camera
from IPython.display import Image

fig = plt.figure()
camera = Camera(fig)

for i in range(10):
    plt.plot([i] * 10)
    camera.snap()

animation.save('celluloid_minimal.gif', writer='ffmpeg')

plt.close()

Image(url='celluloid_minimal.gif')

在示例 2 中,我需要在删除静态图像plt.close()之后放置。ax.set_xlim(0, 10)如果我plt.close()之前输入正确Image(url='animation.gif'),则静态图像将与交互式图表一起显示。

fig = plt.figure()
ax = plt.axes()
ax.set_ylim(0, 1)
ax.set_xlim(0, 10)
plt.close()

camera = Camera(fig)
for i in range(10):
    ax.scatter(i, np.random.random())
    plt.pause(0.1)
    camera.snap()

animation = camera.animate()
animation.save('animation.gif', writer='ffmpeg')

Image(url='animation.gif')

为什么plt.close()需要将这两个示例中的静态图像放在不同的位置来移除?

4

0 回答 0