[ipywidgets] 32. plt.savefig()のパラメータを対話的に調整して図を保存する

ipywidgets

はじめに

jupyter notebook, labで対話的にパラメータを調整できる機能(ipywidgets FloatSliderなど)を使って、plt.savefig()のパラメータを対話的に調整し、容易に目的の図を保存する方法について説明する。

コード

解説

モジュールのインポートなど

バージョン

データの生成

下記記事と同様のデータを作成した。

[matplotlibで錯視] 5. エーレンシュタイン錯視1
matplotlibでエーレンシュタイン錯視1を作成する

図の表示

plt.figure(linewidth=5)とする。linewidthはデフォルトで0のため、savefigのパラメータのedgecolorを変化させたときの違いがわからないため、ここではlinewidthを5とする。

ウィジェットを変更した時の操作

ax.cla()で図を消した後に、図を再描写し、plt.savefigで図を保存する。その保存した図を画像データとして読み込み、imshowで表示する。

図の背景色

RadioButtonsでoptionsのリスト内の要素を選択できるようにする。

図の最外枠線の色

背景色と同様に、RadioButtonsでoptionsのリスト内の要素を選択できるようにする。

図の余白の設定

FloatSliderにより図の余白のパラメータであるpad_inchesを変化させる。

透明性

png形式の場合はtransparent=Trueで無色の部分を透明にすることができる。Checkboxで設定し、checkが入っている時はTrue,外れている時はFalseとなる。

解像度

IntSliderで解像度のパラメータであるdpiを変化させる。

widgetsの表示

interactiveを用いてwidgetsを動作させる。{‘manual’: True}とすることでRun Interactボタンが表示されるので、パラメータをいじった後にこのボタンを押すことでdefで設定した関数オブジェクトが実行されることになる。widgetsはdisplayで表示する。

Example

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

matplotlib.pyplot.savefig — Matplotlib 3.1.2 documentation
Widget Events — Jupyter Widgets 8.1.2 documentation
Widget List — Jupyter Widgets 8.1.2 documentation

コメント