[matplotlib] 13. 図の中の一部を拡大して同じ図中に表示(inset_axes)

matplotlib

はじめに

matplotlib.axes.Axes.inset_axesを利用して、図の中の一部を拡大して同じ図中に表示する。

コード

解説

モジュールのインポート

データの生成

xとyで格子状のデータ(X,Y)をnp.meshgridで作成し、関数f(X,Y)によりZデータを生成する。

図の作成

imshowでZデータを表示する。extentを[0, 5, 0, 5]とすることにより、X,Yと合うようにしている。

plt.colorbar()でカラーバーが表示される。

図の中に図を作成

ax.inset_axes([0.45, 0.4, 0.5, 0.5])の中の[]は、[x0, y0, width, height]である。図(ax)で、図の(0.45,0.4)の位置(左下を(0,0)、右上を(1,1)とした相対的な位置)に幅0.5, 高さ0.5(これも相対的な大きさ)の図が生成する。

図の中の図(axins)もaxと同様にimshow()で画像を表示する。

図の中の図の表示範囲

set_xlim, set_ylimで表示範囲を設定、set_xticklabels(”)、set_yticklabels(”)でx,y軸のラベルを非表示にしている。

図の拡大表示位置の明示化

ax.indicate_inset_zoom(axins)とすることで図(ax) の拡大した位置がわかるように四角と線が表示される。

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

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

参考

https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.inset_axes.html

コメント

  1. […] ここまでは、inset_axesを用いた方法と同じである。 […]