1

我是 Python 新手,实际上我正在尝试在子图上绘制一个图形。

困难的是我需要轴属性,它是一个字符串,我可以通过简单地打印子图来获得(下面的示例)。

figure(1)
a = subplot(222)
print a
Axes(xpos,ypos;deltaxxdeltay)

这个字符串包含我想要做的所有信息(一个简单的轴([x,y,deltax,deltay])。但不幸的是,我需要将 print() 的输出重定向到我可以的变量之后解析(使用 re())。

有谁知道怎么做(我只需要这个字符串的输出,程序中的其他打印值一定不受影响)?

4

1 回答 1

2

您可以直接访问该信息,而不是通过字符串,我认为这更干净:

>>> print a
Axes(0.547727,0.536364;0.352273x0.363636)
>>> a._position.bounds
(0.54772727272727262, 0.53636363636363638, 0.35227272727272729, 0.36363636363636365)
>>> a._position.bounds[3]
0.36363636363636365

尽管您可以根据需要使用字符串:

>>> str(a)
'Axes(0.547727,0.536364;0.352273x0.363636)'
>>> str(a)[5:-1]
'0.547727,0.536364;0.352273x0.363636'

我使用 IPython 解释器,因此很容易通过查看以下来源来找出信息的来源a.__str__

>>> a.__str__??
Type:       instancemethod
String Form:<bound method AxesSubplot.__str__ of <matplotlib.axes.AxesSubplot object at 0x103e187d0>>
File:       /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.py
Definition: a.__str__(self)
Source:
    def __str__(self):
        return "Axes(%g,%g;%gx%g)" % tuple(self._position.bounds)
于 2013-05-17T11:46:07.450 回答