George Nurser wrote:
> I have been trying to
> i. plot a figure using pcolormesh
> ii. set the proportions of the figure using ax.set_aspect
> iii. draw colorbar
> 
> Problem is, colorbar height uses whole of axes box, not just height of
> figure (whose proportions were set by call of
> ax.set_aspect(aspect=2.,adjustable='box')).
> 
> I can't set the colorbar height manually either, as I don't know how
> to get out the bounding box of the figure -- ax.get_position() just
> gives the full axes box, which is unaffected by ax.set_aspect.
> 
> Is there any way of recovering the actual bounding box of the figure?
> The docstring for the method ax.set_position says:
> 
>     There are two position variables: one which is ultimately
>     used, but which may be modified by apply_aspect, and a second
>     which is the starting point for apply_aspect.
> 
>     which = 'active' to change the first;
>             'original' to change the second;
>             'both' to change both
> 
> which sounds relevant, but these variables don't seem to apply to
> ax.get_position()

George,

The problem with your attempt to use get_position() is that the aspect 
ratio does not affect the position until the apply_aspect method of the 
axes is called, which is normally when drawing occurs.  You can either 
call it yourself, or you can insert a draw command.  Here is an example 
of the first:

In [6]:pcolor(z)
Out[6]:<matplotlib.collections.PolyCollection instance at 0xb3db690c>

In [7]:gca().get_position()
Out[7]:[0.125, 0.099999999999999978, 0.77500000000000002, 
0.80000000000000004]

In [8]:gca().set_aspect(3)

In [9]:gca().get_position()
Out[9]:[0.125, 0.099999999999999978, 0.77500000000000002, 
0.80000000000000004]

In [10]:clf()

In [11]:pcolor(z)
Out[11]:<matplotlib.collections.PolyCollection instance at 0xb3dc6a6c>

In [12]:gca().get_position()
Out[12]:[0.125, 0.099999999999999978, 0.77500000000000002, 
0.80000000000000004]

In [13]:gca().set_aspect(3)

In [14]:gca().apply_aspect()

In [15]:gca().get_position()
Out[15]:
[0.31343312597200623,
  0.099999999999999978,
  0.39813374805598761,
  0.80000000000000004]

Eric

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to