python - 如何在 python matplotlib 中使用 set_position 方法来固定坐标轴位置?

标签 python matplotlib position axes

我认为这很容易,但我搜索了互联网和 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 发生了变化。谁能给出任何提示?

谢谢!

最佳答案

尝试通过将参数指定为 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 ]]))

有了它,您可以看到设置像您预期的那样往返。

此外,您可以像这样将结果视为元组:

>>> 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

关于python - 如何在 python matplotlib 中使用 set_position 方法来固定坐标轴位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971926/

相关文章:

python-3.x - 如何在 matplotlib 中创建具有垂直阴影的绘图

css - 居中位置 :fixed div

python - pygame 将图像放置在屏幕上的问题

python - FTP 下载,带有显示当前下载状态的文本标签

非矩形域上的 Python 3D 图

python - 与Hortonworks Ambari(Hive)的Python连接。

python - Pandas:用基准绘制 3 个月的报价图表

css - 将 ul 对齐到固定 div 中的底部

python - 如何将带有表情符号名称的字符串转换为不和谐的表情符号?

python - 测试新的 mercurial hooks 的简单、无痛的方法(正在进行中)