On Thursday, February 16, 2012, Martin Mokrejs wrote:

> Hi Ben,
>  glad you found the answer. Once again, does F.get_size_inches() have to
> return to
> the user the numpy array? Why not a list or tuple? I don't mind matplotlib
> internal
> stuff. ;-)


We don't return a list or a tuple because other functions within mpl needs
the numpy array.


>
> In an answer to your proposed workaround
>
> > DefaultSize = tuple(F.get_size_inches())
>
> let me comment that (I think) I tried also
>
> DefaultSize = F.get_size_inches()[:]
>
> but that also did not work for me. And was similarly think of the copy
> module haven't
> bothered to try that. ;-)
>
>
You might want to read up on numpy arrays.  A slice of an array returns a
view.  A slice on a view also returns a view.  If you want a copy, the
array has a copy() method.  I don't know if the copy module would actually
work because it would merely be copying the view (creating a duplicate
view).

Ben Root


>
>  Yes, please document this at least if you really cannot return a simple
> list or tuple.
> Thanks,
> Martin
>
> Benjamin Root wrote:
> >
> >
> > On Thu, Feb 16, 2012 at 3:09 PM, Martin Mokrejs <
> mmokr...@fold.natur.cuni.cz <javascript:;> <mailto:
> mmokr...@fold.natur.cuni.cz <javascript:;>>> wrote:
> >
> >     Hi Benjamin,
> >      thank you for you explanation. My comment is below in the text:
> >
> >     Benjamin Root wrote:
> >     >
> >     >
> >     > On Tue, Feb 14, 2012 at 4:43 PM, Martin Mokrejs <
> mmokr...@fold.natur.cuni.cz <mailto:mmokr...@fold.natur.cuni.cz> <mailto:
> mmokr...@fold.natur.cuni.cz <mailto:mmokr...@fold.natur.cuni.cz>>> wrote:
> >     >
> >     >     Ah, this seems to be the issue that my figsize was growing all
> the time so it
> >     >     went over the maximum limits.
> >     >
> >     >     I thought this is valid:
> >     >     DefaultSize = F.get_size_inches()
> >     >     print str(DefaultSize)
> >     >     blah
> >     >     F.set_size_inches(DefaultSize)
> >     >
> >     >     See http://matplotlib.sourceforge.net/api/figure_api.html
> >     >
> >     >     <quote>
> >     >     set_size_inches(*args, **kwargs)
> >     >
> >     >        set_size_inches(w,h, forward=False)
> >     >
> >     >        Set the figure size in inches
> >     >
> >     >        Usage:
> >     >
> >     >        fig.set_size_inches(w,h)  # OR
> >     >        fig.set_size_inches((w,h) )
> >     >
> >     >        optional kwarg forward=True will cause the canvas size to
> be automatically updated; eg you can resize the figure window from the shell
> >     >
> >     >        ACCEPTS: a w,h tuple with w,h in inches
> >     >     </quote>
> >     >
> >     >     Nope, it does not work. The print call gives me: [ 8.  6.].
> So, this is not a tuple?
> >     >     Or python-2.7 issue how is it printed ... I fear? ;-)
> >     >     Anyway, doing
> >     >
> >     >     F.set_size_inches(11.2, 15)
> >     >
> >     >     works for me.
> >     >
> >     >     Martin
> >     >
> >     >
> >     > I am a little bit confused by your code example.  You get the
> figure size and print it, and *then* you set it with the exact same values,
> and you are surprised that it came out as [8. 6.]?  Note that the figure
> size is stored internally as a numpy array, so when you do "print
> str(DefaultSize)", you will get the string representation of the numpy
> array.  You can still pass in a tuple, list, or two separate elements.  Try
> this code:
> >
> >     No, in my experience it did NOT work. I suspect F.set_size_inches()
> either did not like the input tuple or something else. Now. after reading
> your clarification, are you sure it can input the numpy array as well? What
> I also tried was to re-set the figsize to original values.
> >
> >
> > Yes, it can.  I found the source of the problem, see further down.
> >
> >
> >     Ouch, I use pylab not matplotlib directly. :(
> >
> >
> > Doesn't matter.
> >
> >
> >     $ python
> >     Python 2.7.2 (default, Feb  7 2012, 19:33:08)
> >     [GCC 4.5.3] on linux2
> >     Type "help", "copyright", "credits" or "license" for more
> information.
> >     >>> import pylab
> >     >>> F = pylab.gcf()
> >     >>> print F.get_size_inches()
> >     [ 8.  6.]
> >     >>> DefaultSize = F.get_size_inches()
> >     >>> print DefaultSize
> >     [ 8.  6.]
> >     >>> F.set_size_inches(10, 10)
> >     >>> print F.get_size_inches()
> >     [ 10.  10.]
> >     >
------------------------------------------------------------------------------
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