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

ipywidgets

はじめに

この記事では、Jupyter NotebookやJupyter Labで使用できるipywidgetsを活用して、matplotlib.pyplot.savefig()関数のパラメータを対話的に調整する方法を解説します。FloatSliderなどのウィジェットを使うことで、保存する図の解像度やサイズなどを視覚的に調整しながら最適な設定を見つけることができます。

コード

解説

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

バージョン

データの生成

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

[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で行い、チェックが入っているときはTrue、外れているときはFalseとなります。

解像度

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

widgetsの表示

interactiveを用いてwidgetsを動作させます。{‘manual’: True}を設定するとRun Interactボタンが表示され、パラメータを調整した後にこのボタンを押すことで、defで定義した関数が実行されます。widgetsはdisplay関数で画面に表示します。

Example

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

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

まとめ

ipywidgetsを使うことで、matplotlib.pyplot.savefig()のパラメータを対話的に調整できるため、試行錯誤の時間を大幅に短縮できます。特に解像度(dpi)やサイズ(figsize)などの設定を視覚的に確認しながら調整できるため、目的に合った最適な図を簡単に保存することが可能になります。この方法を活用することで、データ可視化の作業効率が向上するでしょう。

参考

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

コメント