Problems with series of plots

Faust,> Hi, I'm trying to plot a series of graphs

    Faust,> #!/usr/bin/python # -*- coding: UTF-8 -*-

    Faust,> # Dr. Markus Faust #
    Faust,> markus.faust@+>>no-spam<<+space.eads.net

    Faust,> from numarray import * from matplotlib.matlab import *

    Faust,> x = arange(400.)*0.01+1. y = x**2*exp(x)

    Faust,> for i in range(3): clf() Figure(figsize=(11.0,7.5))
    Faust,> lines=semilogy(x, abs(y), 'r-') set(lines, 'linewidth',
    Faust,> 2.0) title('test') xlabel('x') ylabel('y') grid('on')
    Faust,> fname = 'test' + str(i) +'.png' savefig(fname, dpi=250)
    Faust,> show()

    Faust,> With matplotlib-0.61.0-numarray0.9-win32-py2.3 this works
    Faust,> as it should. One plot windows occurs, I click it away
    Faust,> and the next occurs.

    Faust,> But with matplotlib-0.62.4.win32-py2.3.exe the program
    Faust,> behaves strange. The first windows occurs and I can click
    Faust,> it away but the next windows can not be controlled
    Faust,> anymore. Is that anticipated?

    Faust,> I'm working on a Windows XP Prof. PC with Python 2.3.4 and
    Faust,> numarray 0.9.

show should be called only once per script -- see
http://matplotlib.sourceforge.net/faq.html#SLOW.

Try replacing the call to Figure(figsize=(11.0,7.5)) with

figure(i+1, figsize=(11.0,7.5))

Figure is an API call and figure is a matplotlib interface call. It
is dangerous and unpredictable to mix the 2.

Other comments: you don't need to import numarray if your matplotlib
numerix rc setting is 'numarray' the matplotlib.matlab import will do
this for you

I've attached a modified (untested script below). I'm on the road en
route to the SciPy conference, so will be mostly out of touch for a
few days.

Hope this helps,
JDH

from matplotlib.matlab import *

x = arange(400.)*0.01+1.
y = x**2*exp(x)

for i in range(3):
    clf()
    figure(i+1, figsize=(11.0,7.5))
    lines=semilogy(x, abs(y), 'r-')
    set(lines, 'linewidth', 2.0)
    title('test')
    xlabel('x')
    ylabel('y')
    grid('on')
    fname = 'test' + str(i) +'.png'
    savefig(fname, dpi=250)
show()