matplotlib中的colorbars几何

bzk*_*lrm 5 geometry matplotlib

使用颜色条绘制图形,例如matplotlib图库的椭圆集合,我试图理解图形的几何形状.如果我在源代码中添加以下代码(而不是plt.show()):

cc=plt.gcf().get_children()
print(cc[1].get_geometry())
print(cc[2].get_geometry())
Run Code Online (Sandbox Code Playgroud)

我明白了

(1, 2, 1)
(3, 1, 2)
Run Code Online (Sandbox Code Playgroud)

我理解第一个--1行,两列,第一个绘图(可能第二个是颜色条),但我不理解第二个,我期望它(1,2,2).这些值对应的是什么?

编辑:似乎cc中的元素没有相同的轴,这可以解释差异.不知何故,我仍然对报告的几何形状感到困惑.

Phi*_*oud 2

发生的事情是当你打电话时colorbaruse_gridspec默认为True然后进行调用matplotlib.colorbar.make_axes_gridspec,然后创建一个 1 x 2 网格来保存绘图和 cbar 轴,然后 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)
Run Code Online (Sandbox Code Playgroud)

因为wh_ratios == [0.0, 1.0, 0.0]默认情况下,上面和下面的其他两个子图是中间图大小的 0 倍。

我已将我所做的事情放入IPython 笔记本中