Keep list of figures or plots and flip through list using UI

Please ping the mailing list again (I cc’d the list on this).

See (sorry for the code quality, this is a bespoked gui I wrote as part of my PhD work, you might be the second person to ever read this code) for a Qt object that wraps up a Figure in a nice-embedded way. Using this directly you can keep a list of these objects around and show/hide them using standard Qt methods. Modifying this a bit you could make this class based on a standard Qt widget, embed them all in a main window/what have you and then again use standard Qt methods to show/hide individual plots as you wish.



On Wed Feb 18 2015 at 12:00:27 PM tenspd137 . <dcday137@…287…> wrote:

Sorry for digging this back up, but I can’t seem to get this to work.

I looked at glue as you suggested, but the page says it only supports

python 2.7. As for the Qt examples I can find, all I see how to do is

to feed a single plot widget different data sets - but nothing on

dynamically changing the underlying widget and redrawing. Would you

maybe take a look at my code and tell me what it is I am missing? If

so, I’ll send it to you.

Much appreciated.


On Tue, Feb 10, 2015 at 6:48 PM, tenspd137 . <dcday137@…287…> wrote:

No problem - thanks for the reply. I tried your suggestion of keeping

a widget for each plot, but I couldn’t get the main window to refresh

correctly - maybe I was doing something wrong. I’ll give it another

try as soon as I get a chance. In the meantime, I’ll check out glue

as well - it looks pretty cool.

I might bug you one more time if I can’t figure it out, but I am not

in a hurry and I probably just overlooked something. :slight_smile:

Thanks and much appreciated!


On Tue, Feb 10, 2015 at 2:44 PM, Thomas Caswell <tcaswell@…287…> wrote:

Sorry this didn’t get a response for so long.

The core of the embedding in Qt is at QWidget which contains the canvas.

Anything you want to do with a QWidget you can do with the canvas.

Independently you need to maintain the mpl level plotting objects (the

Figure, Axes, and Artist objects) (well, you don’t need to, you can get to

them through the canvas object, but to keep your self sane I highly

recommend keeping track of the mpl objects your self, this linkage is there

so that GUI generated draw commands can trigger a re-rendering of the


I would just have a widget for each of the plots you want to have and then

cycle which one is visible in the main window, that is probably a lot easier

than trying to attach and detach canvases from Figures.

I would also take a look at glue who may have solved many

of these problems for you.


On Thu Feb 05 2015 at 1:03:16 PM tenspd137 . <dcday137@…287…> wrote:

Hi all,

I often have scripts that make a lot of plots, and I would like to be

able to create the plots and then have a UI tool that shows a list of

their titles, click on the title and have the plot be drawn in a

window. So far, I have been able to use PyQt to create a UI with a

list box and a Widget to display plots. What I can’t seem to figure

out is how to make a bunch of plots and then have the Window update.

So, in psuedo code:

list of plots = []

Go through datasets:


For plot in plots:

   add plot title to UI list, position in list is reference back

into list of plots

On UI:

    click on plot name/title
    widget draws plot

So - basically like docked plots, except there is just a list to the

side instead (much cleaner IMHO)

I haven’t been able to find any examples from googling. Has any one

been able to do this or seen examples?

Any help or suggestions are appreciated!



Dive into the World of Parallel Programming. The Go Parallel Website,

sponsored by Intel and developed in partnership with Slashdot Media, is


hub for all things parallel software development, from weekly thought

leadership blogs to news, videos, case studies, tutorials and more. Take a

look and join the conversation now.

Matplotlib-users mailing list