一直在尝试如何在Matplotlib中使用Axes对象时更改子图的大小。
fig=plt.figure()
ax=np.empty((2,2,),dtype=object)
ax[0][0]=fig.add_subplot(2,2,1)
ax[0][1]=fig.add_subplot(2,2,2)
ax[1][0]=fig.add_subplot(2,2,3)
ax[1][1]=fig.add_subplot(2,2,4)
现在假设你想改变其中一个子图的大小。我见过你使用gs来做这件事的例子,但我很好奇是否有另一个不使用gs的方法。看起来你可以使用get_position和set_position?
old_position=ax[0][0].get_position()
old_position[-1]=old_position[-1]/2
ax[0][0].set_position(old_position)
这里的想法只是将左上角的图压缩一半,但是返回的position对象是一个不可下标的BBox对象,我看不到一种“下标它”的方法,所以旧的位置可以被改变,一个新的位置可以被设置。
如何使用get/set位置更改其中一个子图的大小?
1条答案
按热度按时间2nbm6dog1#
根据this answer,你可以使用
Axes.get_position().bounds
获取可索引的坐标。然后你可以从结果中更新坐标,并使用Axes.set_position()
。