I’ve done a search on SO but haven’t quite found the right “solution” to my problem. I am running a loop on some data that I wish to plot. At each step of the loop — I plot the figure with plt.show(). However, since this is a blocking function, i am stuck until I manually close the window and then the loop continues and the next plot shows up.
What I would like to do is be able to bind a key press event to close the figure and continue the loop (rather than using the mouse to “X” out of the figure).
If this is not possible, I would like to set a timer to close the figure and continue the loop.
All my issues seem to deal with the fact that plt.show() is blocking everything else — any way around this?
Some notes on my plots: They use the same axes, but contain a scatter plot, fill boxes, and annotations — which are always changing.
Thanks!
Try using
ionfrommatplotlib.pyplot:More info about
ionand interactive vs non-interactive usage hereAlternatively if you want to go with the button press approach assign a callback
An event timer is more tricky because the
showcommand is blocking, so it would probably have to involve threading.