在matlab中,可以直接获取和设置图形上现有轴的位置:
pos = get(gca(), 'position')
set(gca(), 'position', pos)
字符串
如何在matplotlib中做到这一点?
我需要这个有两个相关的原因:
这些是我试图解决的具体问题:
- 我有一列子图,其中有些有颜色条,有些没有,它们的宽度不一样。X轴没有对齐颜色条从轴中窃取空间。这也发生在matlab中,在那里,我会使用上面的技巧,通过将宽度从带有颜色条的轴复制到没有颜色条的轴,使所有轴的宽度相等。
- 通过收缩轴在各个子图之间添加空间。
adjust_subplots()
函数对所有子图进行相同的调整。
2条答案
按热度按时间xzlaal3s1#
在Matplotlib中设置轴位置类似。可以使用axes.的get_position和set_position方法
字符串
如果您还没有看过GridSpec,您可能还想看一下。
llmtgqce2#
get_position()
或_position
得到ax
的位置;set_position()
将 existingax
设置在图中的新位置。但是,对于许多情况,最好在图中的特定位置添加一个 * 新 * 轴,在这种情况下,
add_axes()
可能有用。它允许以非常灵活的方式向现有图形添加轴(和绘图)。例如,在下面的代码中,一个折线图(绘制在ax2
上)叠加在一个散点图(绘制在ax1
上)上。字符串
可以使用pyplot制作相同的图,如下所示。
型
x1c 0d1x的数据
add_axes
特别适用于OP的颜色条从坐标轴“窃取”空间的特定问题;因为它允许在旁边添加 * 另一个 * 轴,而不是改变轴本身的位置,可以用来绘制颜色条。1型
的
如您所见,两个轴具有相同的尺寸。
1:这是基于my answer到另一个Stack Overflow的问题。