Matplotlib:获取并设置轴位置

Åsm*_*und 18 python axes matplotlib subplot

在matlab中,可以直接获取和设置图上现有轴的位置:

  pos = get(gca(), 'position')
  set(gca(), 'position', pos)
Run Code Online (Sandbox Code Playgroud)

我怎么在Matplotlib中这样做?

我出于两个相关原因需要这个:

这些是我试图解决的具体问题:

  • 我有一列子图,其中一些有颜色条,有些没有,并且它们的宽度不同,即X轴不对齐.colorbar从轴上窃取空间.这也发生在matlab中,我会使用上面的技巧通过将带有颜色条的轴的宽度复制到没有颜色条的轴来使所有轴同样宽.

  • 通过收缩轴在各个子图之间添加空格.adjust_subplots()函数调整所有子图相同.

Mol*_*lly 44

在Matplotlib中设置轴位置是类似的.您可以使用的get_position和set_position方法.

import matplotlib.pyplot as plt

ax = plt.subplot(111)
pos1 = ax.get_position() # get the original position 
pos2 = [pos1.x0 + 0.3, pos1.y0 + 0.3,  pos1.width / 2.0, pos1.height / 2.0] 
ax.set_position(pos2) # set a new position
Run Code Online (Sandbox Code Playgroud)

如果你还没有,你可能还想看看GridSpec.