5

たとえばmatplotlibギャラリーの楕円コレクションのように、カラーバーを使用して図形をプロットすると、図形のジオメトリを理解しようとしています。ソースコードに(の代わりにplt.show())次のコードを追加すると、次のようになります。

cc=plt.gcf().get_children()
print(cc[1].get_geometry())
print(cc[2].get_geometry())

私は得る

(1, 2, 1)
(3, 1, 2)

私は最初のものを理解しています-1行2列、最初にプロットします(そしておそらく2番目はカラーバーです)が、私が期待する2番目のもの(1,2,2)を理解していません。これらの値は何に対応していますか?

編集:ccの要素は同じ軸を持っていないようです。これは、不一致を説明します。どういうわけか、私はまだ報告されている形状と混同しています。

4

1 に答える 1

2

を呼び出すとcolorbaruse_gridspecデフォルトでTrueが呼び出され、次に が呼び出されmatplotlib.colorbar.make_axes_gridspec、プロットと cbar 軸を保持するために 1 x 2 のグリッドが作成されます。その後、cbar 軸自体は、実際にはアスペクト比が調整された 3 x 1 のグリッドです。

matplotlib.colorbar.make_axes_gridspecこれを実現する重要な行は

gs2 = gs_from_sp_spec(3, 1, subplot_spec=gs[1], hspace=0.,
                      height_ratios=wh_ratios)

wh_ratios == [0.0, 1.0, 0.0]デフォルトでは、上下の他の 2 つのサブプロットは、中央のプロットのサイズの 0 倍であるためです。

これを理解するために私がしたことをIPythonノートブックに入れました

于 2013-08-14T06:19:54.573 に答える