はじめに
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ファイル)参考
matplotlib.axes.Axes.inset_axes — Matplotlib 3.9.3 documentation
コメント
[…] ここまでは、inset_axesを用いた方法と同じである。 […]