2012-11-23 22 views
5

例えばmatplotlibギャラリーのellipse collectionのように、図をカラーバーでプロットすると、私は図の幾何学を理解しようとしています。 Iは、(代わりplt.show()の)ソースコード内の次のコードを追加する場合: - 第1行、2列プロット(おそらくmatplotlibのカラーバーの幾何学

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

を私は最初のものを理解

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

を得ます2番目はカラーバーです)、私は2番目のものを理解していません。これらの値は何に対応していますか?

編集:ccの要素には、同じ軸がないと思われます。これは、不一致を説明します。どういうわけか、私はまだ報告されているジオメトリと混同しています。

+0

にこれを理解するために何をしたか

を入れています。 '(1,1,1)'を取得し、2番目の 'print'文で例外を指定すると、' AttributeError: 'Axes'オブジェクトに 'get_geometry'属性がありません。 – egpbos

答えて

2

は何が起こっていることはあなたがして、その後、それ自体の軸CBARその後、その後、プロットやCBAR軸を保持するために、1×2のグ​​リッドを作成しますmatplotlib.colorbar.make_axes_gridspecを呼び出しますTruecolorbaruse_gridspecデフォルト設定を呼び出すときである3 1つのグリッドによって、実際にありますそのアスペクト比は

を調整しているデフォルトでwh_ratios == [0.0, 1.0, 0.0]ように他の二つのサブプロットの上下中間プロットの0倍のサイズであるので、これは起こることができるmatplotlib.colorbar.make_axes_gridspecにおけるキーラインは

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

あります。私は私の出力が異なるan IPython notebook

+0

私は 'colorbar()'関数に 'ax'引数を指定すると' plt.colorbar(sth、ax = ax) 'に気付きました。 ax = fig.add_subplot(2,3,4) 'で作成されたカラーバーを描画した後、そのジオメトリは常に「(2,1,1)」に変更されます。(2,1,1)はプロット自体、および(2,1,2)はカラーバーです。新しい 'ax2 = fig.add_subplot(2,3,4)'を作成すると、ax2のジオメトリは再び(2,1,1)になります。これはバグと見なすことができますか? – Jason

関連する問題