現在、下記の記事で勉強中なのですが、Jupyter Notebookでアニメーションすることができるようです。
こんなこともできるのかと驚き、調子に乗ってツイートしてしまいました。
twitter.comJupyter Notebook でこんなこともできるのかー pic.twitter.com/BCrHAHC5UQ
— rim (@rim_0720) 2018年12月30日
引用元は以下の記事のようです。
Embedding Matplotlib Animations in Jupyter Notebooks | Louis Tiao
アニメーション自体は、matplotlibのAPIとして提供されているので、こちらを使っているようです。
animation — Matplotlib 3.0.2 documentation
ただJupyter Notebookで表示させるポイントとしては、アニメーションをto_jshtml関数を用いてIPython.displayモジュールのHTMLで表示させる点ですね。
import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation from IPython.display import HTML fig, ax = plt.subplots() xdata, ydata = [], [] ln, = plt.plot([], [], 'ro', animated=True) plt.close() def init(): ax.set_xlim(0, 2*np.pi) ax.set_ylim(-1, 1) return ln, def update(frame): xdata.append(frame) ydata.append(np.sin(frame)) ln.set_data(xdata, ydata) return ln, ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128), init_func=init, blit=True) #サンプルコードではplt.show()だけど #plt.show() # HTMLで HTML(ani.to_jshtml())
下記のような画面になります。
Jupyter Notebookの仲間では
Jupyter Lab
こちらではうまく動きませんでした。ローカルでもAzure Notebooks上のJupyterLabでも同様です。
以下のように表示がおかしくなりました。
Azure Notebooks
Azure Notebooksでは可能です。
Google Colaboratory
Google Colaboratoryでも可能です。
私の手元でも動作確認出来たのですが、下記のブログでも紹介されています。
ただ、保存に失敗したのは私だけ?
Datalore
Dataloreだとダメでした。
plt.close()のコードを削除することで、それっぽいのは表示されたのですが、再生ボタンが表示できませんし、アニメーションもされません。