0

Matplotlib と celluloid を使用して、静止画像を削除し、Jupyter Notebook にインタラクティブ チャートのみを表示したいと考えています。plt.close()最後から 2 行目に配置する必要があることを知りました。

例 1 では、plt.close()最後から 2 番目の行が完全に機能します。つまり、インタラクティブ チャートのみが表示されます。

%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()これら 2 つの例で静止画像を削除するために別の場所に配置する必要があるのはなぜですか?

4

0 に答える 0