Matlabでは、図の既存の軸の位置を取得および設定するのは簡単です。
pos = get(gca(), 'position')
set(gca(), 'position', pos)
Matplotlibでこれを行うにはどうすればよいですか?
これは、関連する2つの理由で必要です。
これらは私が解決しようとしている特定の問題です:
一部にはカラーバーがあり、一部にはないサブプロットの列があり、それらは同じ幅ではありません。つまり、X軸は整列しません。カラーバーは軸からスペースを奪います。これはmatlabでも発生しますが、カラーバーのある軸から幅のない軸に幅をコピーすることにより、上記のトリックを使用してすべての軸の幅を等しくします。
軸を縮小して、個々のサブプロット間にスペースを追加します。 adjust_subplots()関数は、すべてのサブプロットを同じように調整します。
軸の位置の設定はMatplotlibでも同様です。 axes。 のget_positionおよびset_positionメソッドを使用できます。
import matplotlib.pyplot as plt
ax = plt.subplot(111)
pos1 = ax.get_position() # get the original position
pos2 = [pos1.x0 + 0.3, pos1.y0 + 0.3, pos1.width / 2.0, pos1.height / 2.0]
ax.set_position(pos2) # set a new position
まだお持ちでない場合は、 GridSpec をご覧ください。