5

これはかなり具体的なリクエストですが、誰かがこの特定の問題に対する解決策を持っているかどうか疑問に思っていました. プロットにカラーバーが含まれている場合、Matplotlib はカラーバーとプロット自体の両方を正方形の境界ボックスに押し込もうとしているように見えます。カラーバーを保持しながら、プロット自体を正確に必要な寸法 (理想的にはアスペクト比 1) のままにする方法はありますか? 推測して確認する必要がないように、これを行う賢い方法はありますか?

狭苦しい

コードは以下のとおりです。

plt.figure(figsize=(8,8))
props = dict(boxstyle='round', facecolor='#C0C0C0', alpha=1)
plt.hexbin(p_binned[7],q_binned[7],extent=(0,1,0,1),gridsize=50,cmap='bone')
plt.colorbar()
text_content = "{:1.3f} ".format(bins[7]/r200_MediumMass2)
plt.text(0.05, 0.95, text_content + r"$r/r_{200}$", fontsize=16, verticalalignment='top', bbox=props)
plt.xlabel('p')
plt.ylabel('q',rotation='horizontal')
plt.ylim(0,1)
plt.xlim(0,1)
plt.show()

ありがとう!

4

1 に答える 1

6

軸のアスペクト比を強制的に 1 にすることができます。

ax.set_aspect('equal')

フィギュアのサイズを任意の寸法 (インチ単位) に変更します。

fig.set_size_inches([height, width],forward=True)

使用できます

art.get_window_extent()

アーティストのサイズを表示単位で取得するには、これを使用してプログラムでサイズを変更できます。

mpl は他にどのようにカラーバーに追加する必要がありますか?

于 2013-10-15T22:36:42.997 に答える