On Monday, May 30, 2011, Eric O LEBIGOT (EOL)
<eric.lebi...@normalesup.org> wrote:
>
> Thank you for your response.
>
>
> Benjamin Root-2 wrote:
>>
>> On Sunday, May 29, 2011, Eric O LEBIGOT (EOL)
>> <eric.lebi...@normalesup.org> wrote:
>>>
>>> What does ion() exactly do?
>>>$$$
>>> from matplotlib import pyplot as pp
>>>
>>> pp.plot([10, 20, 50])
>>> pp.draw()
>>>
>>> raw_input('Press enter...')  # No graph displayed?!!
>>>$$$
>>
>> Turning interactive mode on also means an implied "show" command, if
>> needed.  The first program can replace draw() with show().  However,
>> if interactive mode is off, then the python execution pauses.  With it
>> on, python execution will continue.
>>
> So, if anything is drawn when interactive mode is off, does one *have* to
> use show() at the end?  in other words does using a single raw_input() at
> the end of the program force the use of the interactive mode for *all*
> figures? (Closing all the figures with a simple "enter" is very convenient,
> but having a performance penalty for this would not be so nice…).
>

Yes, if interactive mode is off, and you want to view the figures, you
need show(). No, the raw_input does nothing in either case.


> Now, if I understand you correctly, I have another question.  I don't
> understand anymore what draw() does: in fact, it is not necessary in
> interactive mode, and it does not appear to do anything in non-interactive
> mode, since show() is really the function that really displays the figures.
> So, why does matplotlib offer draw()?  what does it really do?
>

The draw() command is used for some more advanced features such as
animations and widgets, as well as for internal use.  I rarely use
draw() in my scripts.

May I suggest reading the FAQ and some of the example scripts on the
website in order to demonstrate the different ways to use mpl?

Ben Root


> EOL
>
> PS: Here is an example: the following code does *not* display the first
> figure (Matplotlib 1.0.0 on Mac OS X with the GTKAgg backend):

Off the top of my head, this is either a bug that has been fixed, or
is intended behavior.  Turning interactive mode on after having made a
figure might be confusing pyplot.  Calling show at anytime will
produce the intended behavior.  show() is your friend.



> $$$
> from matplotlib import pyplot as pp
>
> pp.figure()
> pp.plot([10, 20, 50])
> pp.draw()  # Will not be displayed despite the draw()
>
> pp.ion()  # Interactive mode on
> pp.figure()
> pp.plot([100, 20, 10])
>
> raw_input('Press enter...')  # Only the second graph is displayed
> $$$
> --
> View this message in context: 
> http://old.nabble.com/Exact-semantics-of-ion%28%29---tp31728909p31731176.html
> Sent from the matplotlib - users mailing list archive at Nabble.com.
>
>
> ------------------------------------------------------------------------------
> vRanger cuts backup time in half-while increasing security.
> With the market-leading solution for virtual backup and recovery,
> you get blazing-fast, flexible, and affordable data protection.
> Download your free trial now.
> http://p.sf.net/sfu/quest-d2dcopy1
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to