Does anybody know why the show._needmain stuff is needed in the show() function
in backend_tkagg.py? Currently, this function is as follows:
def show():
"""
Show all the figures and enter the gtk mainloop
This should be the last line of your script. This function sets
interactive mode to True, as detailed on
http://matplotlib.sf.net/interactive.html
"""
for manager in Gcf.get_all_fig_managers():
manager.show()
import matplotlib
matplotlib.interactive(True)
if rcParams['tk.pythoninspect']:
os.environ['PYTHONINSPECT'] = '1'
if show._needmain:
Tk.mainloop()
show._needmain = False
show._needmain = True
If I remove the show._needmain stuff, as in:
def show():
"""
Show all the figures and enter the gtk mainloop
This should be the last line of your script. This function sets
interactive mode to True, as detailed on
http://matplotlib.sf.net/interactive.html
"""
for manager in Gcf.get_all_fig_managers():
manager.show()
import matplotlib
matplotlib.interactive(True)
if rcParams['tk.pythoninspect']:
os.environ['PYTHONINSPECT'] = '1'
Tk.mainloop()
then the function still seems to work fine, and multiple show()s also works.
--Michiel.
--- On Thu, 8/20/09, Kim, Dae-Won <[email protected]> wrote:
> From: Kim, Dae-Won <[email protected]>
> Subject: Re: [Matplotlib-users] show() problem in Mac OS X 10.5.8
> To: "Michiel de Hoon" <[email protected]>
> Cc: "Ryan May" <[email protected]>, [email protected]
> Date: Thursday, August 20, 2009, 10:26 AM
>
> I tested with TKAgg and WXAgg. I just bought macbook and
> I'm newbie yet. Do I need to set something special for
> the multiple show()s?
>
> Thanks,
>
> -Dae-Won
>
> On Thu, Aug 20, 2009 at 10:01 AM,
> Michiel de Hoon <[email protected]>
> wrote:
>
>
> Whether or not you can do multiple
> show()s depends on which backend you use. For example, the
> Mac OS X native backend has no problems with the multiple
> show()s in your example. Which backend were you using? While
> matplotlib does not support multiple show()s in general,
> there may be a simple solution to get that working for the
> backend you are using.
>
>
>
>
>
> --Michiel.
>
>
>
> --- On Wed, 8/19/09, Kim, Dae-Won <[email protected]>
> wrote:
>
>
>
> > From: Kim, Dae-Won <[email protected]>
>
> > Subject: Re: [Matplotlib-users] show() problem in Mac
> OS X 10.5.8
>
> > To: "Ryan May" <[email protected]>
>
> > Cc: [email protected]
>
> > Date: Wednesday, August 19, 2009, 2:48 PM
>
> >
>
> > The one 'preliminary' solution I found is
> using
>
> > an interactive mode + raw_input.
>
> > Here is and example,
>
> >
>
> > ion()
>
> > plot([1,2,3,4,5])
>
> > raw_input('Type Enter')
>
> > clf()
>
> >
>
> >
>
> > plot([1,2,3,4,5])
>
> > raw_input('Type_Enter')
>
> > clf()
>
> > plot([1,2,3,4,5])
>
> > show()
>
> >
>
> > With this approach, I can press the enter when I want
> to
>
> > see next figure.
>
> >
>
> >
>
> >
>
> > Though It's not as convenient as 'multiple
>
> > show()'..
>
> >
>
> >
>
> > On Wed, Aug 19, 2009 at 1:57 PM,
>
> > Kim, Dae-Won <[email protected]>
>
> > wrote:
>
> >
>
> >
>
> >
>
> >
>
> > On Wed, Aug 19, 2009 at 1:02 PM,
>
> > Ryan May <[email protected]>
>
> > wrote:
>
> >
>
> >
>
> >
>
> > On Wed, Aug 19, 2009 at 11:55
>
> > AM, coati <[email protected]>
>
> > wrote:
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > I have a problem with show() command in my macbook
>
> > machine (Leopard 10.5.8).
>
> >
>
> > For example, if I run the script shown below
>
> >
>
> > (let assume it is saved as 'test.py', and I
> run a
>
> > command 'python test.py'),
>
> >
>
> >
>
> >
>
> > ---------------------------------------
>
> >
>
> >
>
> >
>
> > plot([1,2,3,4,5])
>
> >
>
> > show() #first window
>
> >
>
> > plot([1,2,3,4,5])
>
> >
>
> > show() #second window
>
> >
>
> > plot([1,2,3,4,5])
>
> >
>
> > show() #third window
>
> >
>
> >
>
> >
>
> > ---------------------------------------
>
> >
>
> >
>
> >
>
> > Then the first window just pops up and I can see a
>
> > beautiful straight line
>
> >
>
> > :) No problem so far.
>
> >
>
> > But, after I close the first window by clicking the
> close
>
> > button of the
>
> >
>
> > window,
>
> >
>
> > other two window (second and third) just pops up and
> close
>
> > themselves
>
> >
>
> > instantly
>
> >
>
> > even though I didn't click the close button...
>
> >
>
> > Also, the second and third plot is shown in the same
>
> > window.
>
> >
>
> >
>
> >
>
> > I don't have such problem in my Ubuntu machine..
>
> >
>
> >
>
> >
>
> > Does anybody know reasons?
>
> > show() actually handles starting the GUI mainloop, so
> you
>
> > really shouldn't be calling it more than once from
> a
>
> > script. Quite frankly, it's more amazing that it
> works
>
> > on your Ubuntu macine. :) If you're wanting 3
> separate
>
> > windows, try:
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > plot([1,2,3,4,5])
>
> > figure()
>
> > plot([1,2,3,4,5])
>
> > figure()
>
> > plot([1,2,3,4,5])
>
> > show()
>
> >
>
> > Ryan
>
> >
>
> > --
>
> > Ryan May
>
> >
>
> > Graduate Research Assistant
>
> > School of Meteorology
>
> > University of Oklahoma
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Thanks Ryan,
>
> >
>
> > Hm.. it's a bit strange.. I just installed
> matplotlib
>
> > at Ubuntu using the package manager :)
>
> > And, another linux machines (red hat enterprise) can
> do
>
> > this too. For the RHELs, I compiled matplotlib source
> code
>
> > by myself.
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > figure() works very well, but what I want to do is to
> check
>
> > the plots one by one and thus
>
> > I can exit the script at any time I want (because I
> usually
>
> > have lots of figures to check and I don't want
>
> > to pop up every of them at the same time..)
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Anyway, thank you very much!
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > -----Inline Attachment Follows-----
>
> >
>
> >
> ------------------------------------------------------------------------------
>
> > Let Crystal Reports handle the reporting - Free
> Crystal
>
> > Reports 2008 30-Day
>
> > trial. Simplify your report design, integration and
>
> > deployment - and focus on
>
> > what you do best, core application coding. Discover
> what's
>
> > new with
>
> > Crystal Reports now. http://p.sf.net/sfu/bobj-july
>
> > -----Inline Attachment Follows-----
>
> >
>
> > _______________________________________________
>
> > Matplotlib-users mailing list
>
> > [email protected]
>
> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
> >
>
>
>
>
>
>
>
>
>
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users