Replotting

I use pylab.plot(x,y) for exploring or debugging some functions or subroutines.
I would like to cycle through 2 or more plot windows, in a simple way that won’t force me to entangle the code in bothersome ways. But I can’t seem to get more than one plot window to open per launch.

Here is an example of what I want to have happen:

The program calls subroutine A, and creates a plot so that I can see what it has done.
The plot opens, and I see that A is doing what I want, then I close the plot window (I interactively click the close button).
Then the program calls subroutine B, and creates another plot so I can check its results.
The plot opens, I see what I want and close it.
And so on.

But I can’t figure out how to make that work. Only one plot ever shows.

Here is a very minimal example of what I have tried:

    import numpy as N
    import pylab as P

    x = N.linspace(0,6,100)
    y = N.sin(x)
   
    P.plot(x,y)
    P.show()     # At this point, I want to see what I've got, and then move on.
   
    y = -y
    P.plot(x,y)
    P.show()     # This plot will not show.

The answer for me is not to use “subplot()”. I already use that often. But I want these plots to stand on their own, so that I don’t have to entangle the different pieces of code just for some exploratory plotting.

I hope someone has an easy solution!
Thanks,
Bill

···

Hi,
I gave a solution just a couple of days ago, I believe the similar
approach could solve this problem also
Essentially, . each time you press a button on graph (not the close
button) you generate an event which would call an update function, you
could farm out work to perform subroutine B here, then replot the
result.
Steve

···

williamolsen@…614…

I
use pylab.plot(x,y) for exploring or debugging some functions or
subroutines.

I would like to cycle through 2 or more plot windows, in a simple way
that won’t force me to entangle the code in bothersome ways. But I
can’t seem to get more than one plot window to open per launch.

Here is an example of what I want to have happen:

The program calls subroutine A, and creates a plot so that I can see
what it has done.

The plot opens, and I see that A is doing what I want, then I close
the plot window (I interactively click the close button).

Then the program calls subroutine B, and creates another plot so I
can check its results.

The plot opens, I see what I want and close it.

And so on.

But I can’t figure out how to make that work. Only one plot ever
shows.

Here is a very minimal example of what I have tried:

    import numpy as N

    import pylab as P



    x = N.linspace(0,6,100)

    y = N.sin(x)

   

    P.plot(x,y)

    P.show()     # At this point, I want to see what I've got, and

then move on.

    y = -y

    P.plot(x,y)

    P.show()     # This plot will not show.

The answer for me is not to use “subplot()”. I already use that
often. But I want these plots to stand on their own, so that I don’t
have to entangle the different pieces of code just for some exploratory
plotting.

I hope someone has an easy solution!

Thanks,

Bill

http://old.nabble.com/plotting-in-a-loop-td28306656.html