5

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

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

我明白了

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

我理解第一个 - 1 行,两列,首先绘制(大概第二个是颜色条),但我不理解第二个,我希望它是(1,2,2)。这些值对应什么?

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

4

1 回答 1

2

发生的事情是,当您调用时colorbaruse_gridspec默认为Truewhich 然后调用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)

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

我已经把我为解决这个问题所做的事情放到了一个 IPython 笔记本中

于 2013-08-14T06:19:54.573 回答