matplotlib:当使用append_axes时,如何指示我想要添加子面板的轴?

aim*_*aim 10 python matplotlib divider subplot

我一直在看Matplotlib库中的示例"scatter hist".

目前,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)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将子图位置更改为:

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)
Run Code Online (Sandbox Code Playgroud)

即将x子面板移动到底部,然后append_axes将y子图添加到x子图的右侧,而不是散点图的右侧.(我上传图片,但我还没有足够的声誉发布图片...... grrr)!

如何告诉append_axes我想将y子图附加到包含散点图的"主轴"的右侧?我猜我需要在某处再次指定对象axScatter(虽然我认为这divider = make_axes_locatable(axScatter)是为了什么?!)或者我猜测分隔符在窗口面板中设置了一个网格我需要告诉append_axes哪个单元格包含主轴.

谢谢,

亚历克斯

cra*_*ulf 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)
Run Code Online (Sandbox Code Playgroud)

这确实像虫子一样臭。