matplotlib:使用append_axes时,如何指定要添加子面板的坐标轴?
我在看Matplotlib画图库里的一个例子,叫做“散点图和直方图”。
现在,x轴和y轴的子图分别在顶部和右侧,也就是:
divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
但是,如果我把子图的位置改成:
divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
也就是说,把x轴的子图移到下面,这样append_axes就会把y轴的子图加到x轴子图的右边,而不是散点图的右边。(我本来想上传图片的,但我还没有足够的声望来发图片...真让人郁闷!)
我该怎么告诉append_axes,我想把y轴的子图加到包含散点图的“主坐标轴”的右边呢?我猜我需要在某个地方再次指定axScatter这个对象(虽然我以为divider = make_axes_locatable(axScatter)
就是为了这个?)或者我猜divider已经在窗口面板里设置了一个网格,我需要告诉append_axes哪个单元格包含主坐标轴。
谢谢,
亚历克斯
1 个回答
2
你创建 axHisty
和 axHistx
的顺序似乎很重要。如果你把最后两个语句的顺序调换一下,就能得到想要的效果:
divider = make_axes_locatable(axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)
这看起来确实像是个错误。