web-dev-qa-db-ja.com

Matplotlib:軸の位置の取得と設定

Matlabでは、図の既存の軸の位置を取得および設定するのは簡単です。

  pos = get(gca(), 'position')
  set(gca(), 'position', pos)

Matplotlibでこれを行うにはどうすればよいですか?

これは、関連する2つの理由で必要です。

これらは私が解決しようとしている特定の問題です:

  • 一部にはカラーバーがあり、一部にはないサブプロットの列があり、それらは同じ幅ではありません。つまり、X軸は整列しません。カラーバーは軸からスペースを奪います。これはmatlabでも発生しますが、カラーバーのある軸から幅のない軸に幅をコピーすることにより、上記のトリックを使用してすべての軸の幅を等しくします。

  • 軸を縮小して、個々のサブプロット間にスペースを追加します。 adjust_subplots()関数は、すべてのサブプロットを同じように調整します。

17
Åsmund

軸の位置の設定は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 をご覧ください。

43
Molly