get_position vs set_position

Hi Robin,

> What version of matplotlib do you use?

I think I am up to date.

> For me the following works:
> ax.set_position(ax.get_position())

That works for me to - the problem is I wanted to change the numbers a
little once I saw them. I see now the thing to do (I think) is
print ax.get_position() # have a look
from matplotlib.transforms import Bbox
ax.set_position(Bbox([ [a, b], [c, d] ])) # with numbers changed
slightly from the printed ones

At the time I thought Bbox was a more internal thing so wanted a way
to convert Bbox to the format described in the docstring ([left,
bottom, width, height]). I think it would be nice if Bbox had some
method to give this (is Bbox.to_pos() ) or something... perhaps there
already is but I couldn't find it.

In the docstring of set_position it is also mentioned that a Bbox can be given
as pos.

Just one additional remark: You can also modify the returned Bbox and pass it
in again into set_position - something like

bb = ax.get_position()
# get an array holding the points:
a = bb.get_points()
# ... modify a ...

best regards Matthias


On Wednesday 08 July 2009 18:48:04 Robin wrote:

On Wed, Jul 8, 2009 at 4:00 PM, Matthias Michler<MatthiasMichler@...361...> wrote:

Anyway now I learned Bbox I think it is actually a nicer way to think
about when doing it by hand (bottom left corner, top right corner).

Thanks for your help,


> The object returned by get_position is "A mutable bounding box.", which
> is also supported in set_position. Nevertheless set_position supports
> lists with '[left, bottom, width, height]', too. E.g.
> ax.set_position([0.2, .4, 0.4, .5])
> best regards Matthias
> On Wednesday 08 July 2009 16:10:37 Robin wrote:
>> Hi,
>> After quite a bit of trial and error I realised that ax.get_position()
>> is returning numbers in the form a Bbox which are very different to
>> the numbers you need for ax.set_position().
>> Often I want to use the subplot positioning first, then get the
>> positions that sets up for some manual tweaking. Is there a way to
>> convert the output of get_position into the same form as for
>> set_position?
>> Cheers
>> Robin