 # How to get a figure's number?

Hi all, I wonder how I can get, in an easy way, the

> number of a figure returned by a call to figure(None).
> The nasty way is:

> allnums = [f.num for f in
> _pylab_helpers.Gcf.get_all_fig_managers()] if allnums:
> num = max(allnums) + 1 else: num = 1

> but this seems horrible for everyday, user-level code.
> What I want to do is simply be able to make a call to:

> ff=figure()

> and then later make a series of plots which go to that
> figure:

> myplotfunc(fignum=ff.num) myplotfunc2(fignum=ff.num) ...

What if we just attach the num attribute in the pylab figure function

figManager.canvas.figure.num = num
return figManager.canvas.figure

John Hunter wrote:

"Fernando" == Fernando Perez <Fernando.Perez@...179...> writes:

> Hi all, I wonder how I can get, in an easy way, the
> number of a figure returned by a call to figure(None).
> The nasty way is:

> allnums = [f.num for f in
> _pylab_helpers.Gcf.get_all_fig_managers()] if allnums:
> num = max(allnums) + 1 else: num = 1

> but this seems horrible for everyday, user-level code.
> What I want to do is simply be able to make a call to:

> ff=figure()

> and then later make a series of plots which go to that
> figure:

> myplotfunc(fignum=ff.num) myplotfunc2(fignum=ff.num) ...

What if we just attach the num attribute in the pylab figure function

figManager.canvas.figure.num = num
return figManager.canvas.figure

That's pretty much what I think would be the simplest solution, and I'd be happy with it.

It would be nice if this little change made it into .73, along with removing this section from figure:

if num==0:
error_msg('Figure number can not be 0.\n' + \
'Hey, give me a break, this is matlab(TM) compatability')
return

Best,

f