1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

matplotlib on jupyterlab

Posted at

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についてはどうも日本語の情報が断片的にしか見つからなかったので、ここに最低限をまとめてみました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?