はじめに
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.5 documentation
Widget List — Jupyter Widgets 8.1.5 documentation
コメント