添加Colorbar时,Matplotlib图变为非正方形

时间:2013-10-15 21:33:35

标签: matplotlib colorbar

这是一个相当具体的请求,但我想知道是否有人有解决这个特定问题的方法。当绘图包含一个颜色条时,似乎Matplotlib试图将颜色条和绘图本身都挤压成方形边界框。有没有办法让图形本身完全符合您想要的尺寸(理想情况下,长宽比为1),同时还有一个颜色条?有没有一种聪明的方法可以让你不必猜测和检查?

Cramped

代码如下:

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()

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以通过

强制轴的纵横比为1
ax.set_aspect('equal')

并将图形重新调整为您想要的尺寸(以英寸为单位)

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

您可以使用

art.get_window_extent()

以显示单位获取任何艺术家的大小,您可以使用它以编程方式重新调整大小。

如何在色标栏中添加mpl?