JupterLabの弱点
JupyterLabはJupyter Notebookの後継であり、多くの機能改善がされているゆえ、通常はJupyter Notebookをあえて使う必要はありません。
しかしながら、私の知る範囲において唯一の弱点は、マジックコマンド%matplotlib
でどのバックグラウンドを指定しても、matplotlibで作成したグラフをブラウザ上のGUIで操作出来ないということでした。
ipympl
この弱点を解決するものがipympl
です。これについての日本語の解説記事が少なく、また後述の余分なタイトルが付加される件に関してはChatGPTに聞いてもなかなか正解にたどり着かなったので、ここにそれらを整理します。
インストール
Github matplotlib/ipymplに古いjupyterlabと使う場合などが書かれていますが、最新版かそれに近いJupyterLabを使っているならば、pipやcondaで単純にインストールするのみです。JupyterLabの必要な拡張機能も標準的にインストール済みと思われます。
例:pipを用いたインストール
pip install ipympl
実行中のJupyterLab
ipympl
のインストール前に、JupyterLab上で他のバックグラウンドを指定してmatplotlibのグラフを表示していた場合、ipythonのカーネルのリスタートか、JupyterLab自体の再起動をしないと、バックグラウンドをipympl
にうまく切り替えれないようです。その場合には、カーネルのりスタートかJupyterLab自体の再起動をして下さい。
使い方
単純にJupyterLabのノートブック上で下記のマジックコマンドを実行するのみで、matplotlibのグラフのバックグラウンドにipympl
が使われます。
%matplotlib ipympl
追加のタイトルなど
バックグラウンドをipympl
にして、matplotlibのグラフを書かせると、その上部にFigure 1
などと追加のタイトルが表示され、グラフの追加や再作成をさせるたびにそのタイトル中の番号は大きくなります。
その消し方についてChatGPTに聞いても、ググっても正解を見つけるのに苦労しました。
やっと見つけた方法が以下です。
fig, ax = plt.subplots()
fig.canvas.header_visible = False
fig.canvas.footer_visible = True
fig.canvas.toolbar_visible = True
グラフ作成時にfig.canvas
の以下の属性をFalseにすることで、非表示に出来ます。それぞれの属性は次の通りです。
-
fig.canvas.header_visible
: グラフ上部のタイトルの表示/非表示 -
fig.canvas.footer_visible
: グラフ下部のフッターの表示/非表示 -
fig.canvas.toolbar_visible
: グラフのGUIでの操作用のツールバーの表示/非表示
フッターを表示させておくと、グラフ上にマウスカーソルを移動することで、その点における値がフッターに表示されるので便利です。
参考ページ
まとめ
私はJupyter NotebookよりJupyterLabの方が断然好きなのですが、上述の問題がちょっとネックだな、と思っておりました。グラフ作成時だけJupyter Notebookを使うしかないかな、って思っていたのですが、ipympl
が使える状態になりました。
ipympl
についてはどうも日本語の情報が断片的にしか見つからなかったので、ここに最低限をまとめてみました。