我认为这很容易,但我搜索了互联网和matplotlib用户的邮件列表,但无法找到答案。 ax2是图“fig”中“ax”轴内的插入轴,我通过以下方式制作: http://matplotlib.sourceforge.net/examples/pylab_examples/axes_demo.html
但现在我的问题是我无法修复ax2我想要的确切位置,似乎draw()命令改变了这个:
In [352]:
ax2.set_position([0.125,0.63,0.25,0.25])
In [353]:
ax2.get_position()
Out[353]:
Bbox(array([[ 0.125, 0.63 ],
[ 0.375, 0.88 ]]))
In [354]:
draw()
In [355]:
ax2.get_position()
Out[355]:
Bbox(array([[ 0.15625, 0.63 ],
[ 0.34375, 0.88 ]]))
注意,在“draw()”命令之后,ax2的x0发生了变化。任何人都可以提供任何提示吗?
谢谢!
答案 0 :(得分:4)
尝试通过将参数指定为Bbox
对象来设置位置:
>>> ax2.set_position(matplotlib.transforms.Bbox(array([[0.125,0.63],[0.25,0.25]])))
>>> ax2.get_position()
Bbox(array([[ 0.125, 0.63 ],
[ 0.25 , 0.25 ]]))
>>> draw()
>>> ax2.get_position()
Bbox(array([[ 0.125, 0.63 ],
[ 0.25 , 0.25 ]]))
通过此功能,您可以看到设置是如您所期望的那样进行往返。
此外,您可以将结果视为tuple
,如下所示:
>>> a.set_position([0.125,0.63,0.25,0.25])
>>> a.get_position().bounds
(0.125, 0.63, 0.25, 0.25)
这取决于您是否希望将位置/位置视为边界框:x0,y0
x1,y1
,或者位置和大小:x,y,width,height
。
目前,您要告诉它设置x,y,width,height
,然后它会告诉您x0,y0,x1,y1
。