添加色条时,Matplotlib图变得不平方

ast*_*max 4 matplotlib colorbar

这是一个相当具体的要求,但我想知道是否有人对此特定问题有解决方案。当一个图包含一个颜色条时,似乎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()
Run Code Online (Sandbox Code Playgroud)

谢谢!

tac*_*ell 5

您可以通过以下方式将轴的长宽比强制为1

ax.set_aspect('equal')
Run Code Online (Sandbox Code Playgroud)

然后将图形调整为所需的尺寸(以英寸为单位)

fig.set_size_inches([height, width],forward=True)
Run Code Online (Sandbox Code Playgroud)

您可以使用

art.get_window_extent()
Run Code Online (Sandbox Code Playgroud)

要获得以展示单位为单位的艺术家的尺寸,可以使用它以编程方式调整尺寸。

mpl应该如何在颜色栏中添加其他内容?