tight_layout only works for instances of Subplots. However, ax2, which
is created by calling twinx, is an instance of Axes, and is not
accounted by the tight_layout command.It may be possible to improve
the situation, I doubt it would be easy as the association between ax1
and ax2 is not very explicit in the current implementation.

One workaround is to use axes_grid1 toolkit (this works with current
git master branch but not sure if it will work with v1.1).

Try to replace

  ax1 = fig.add_subplot(1,1,1)

with

  from mpl_toolkits.axes_grid1.parasite_axes import SubplotHost
  ax1 = SubplotHost(fig, 1, 1, 1)
  fig.add_subplot(ax1)

-JJ


On Thu, Dec 8, 2011 at 5:28 AM, Jérôme <jer...@jolimont.fr> wrote:
> Wed, 7 Dec 2011 20:29:22 +0100
> Jérôme a écrit:
>
>> Is there a way to automatically resize the axis and nicely center the whole
>> set {axes + ticklabels + labels} in the figure ?
>>
>> One could use add_axes and play with the coordinates until he gets something
>> nice, but it gets complicated to have it automatic as things depends on
>> - the number of digits of y-axis ticklabels
>> - whether or not a secundary y-axis is added on the right (using twinx)
>
> Hi again, sorry for multi-posting.
>
> Apparently, figure.tight_layout() does not take into account the secondary
> y-axis on the right.
>
> Is this a known limitation ? (I don't see it on the caveats paragraph [1].)
>
> Or is this the use I make of it that is incorrect ?
>
> Example :
>
> --------------------------------------------------------------------------
>
> import pylab
>
> fig = pylab.figure()
>
> data_1 = [0,1,2,3]
> data_2 = [0,5,250,30000]
>
> lines = []
>
> # Primary axis
> ax1 = fig.add_subplot(1,1,1)
> lines.extend (ax1.plot(data_1, 'b'))
>
> # Secondary axis
> ax2 = pylab.twinx(ax1)
> lines.extend (ax2.plot(data_2, 'g'))
>
> labels = ['Data 1', 'Data 2']
>
> fig.tight_layout()
>
> pylab.show()
>
>
> --------------------------------------------------------------------------
>
> Thanks.
>
> [1] http://matplotlib.sourceforge.net/users/tight_layout_guide.html
>
> --
> Jérôme
>
> ------------------------------------------------------------------------------
> Cloud Services Checklist: Pricing and Packaging Optimization
> This white paper is intended to serve as a reference, checklist and point of
> discussion for anyone considering optimizing the pricing and packaging model
> of a cloud services business. Read Now!
> http://www.accelacomm.com/jaw/sfnl/114/51491232/
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to