Re: [Matplotlib-users] Fwd: Keep list of figures or plots and flip through list using UI
Tom et al., I don't know about this exact application... However, a couple of months ago, I asked on the Scipy mailing list about updating the Scipy cookbook page for Qt/Matplotlib ( http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer), but I never got a response. The cookbook example is terribly out of date, so I worked out a pretty simple example that essentially reproduces the Qt backend plotting window. See my post ( http://mail.scipy.org/pipermail/scipy-dev/2014-December/020258.html) for an initial version of the code. I may have updated it since that time. If you are asking for an example for the MPL docs, I would be happy to write my example up with some picts, if you could tell me where the most appropriate place in the documentation would be for such an addition. (However, it sounds like Creator will supersede Designer for Qt5 so...) Ryan On Wed, Feb 18, 2015 at 12:31 PM, Thomas Caswell tcasw...@gmail.com wrote: A good tutorial on how to make mpl play nice with QtDesigner would be a useful thing to have in the documentation. It would be appreciated if you could take a crack at writing that up. Tom -- Forwarded message - From: tenspd137 . dcday...@gmail.com Date: Wed Feb 18 2015 at 12:25:10 PM Subject: Re: [Matplotlib-users] Keep list of figures or plots and flip through list using UI To: Thomas Caswell tcasw...@gmail.com Funny thing - shortly after I wrote you - I figured it out. I have a GUI/Dialog I created with designer that has a push button which cycles between two plots I stored in a list. If you would like to see my code, I would be more than happy to share. It isn't fabulous, but it show the mechanics. I will also take a look at what you just posted above. Much appreciated! -C On Wed, Feb 18, 2015 at 10:19 AM, Thomas Caswell tcasw...@gmail.com wrote: Please ping the mailing list again (I cc'd the list on this). See https://github.com/tacaswell/leidenfrost/blob/master/ leidenfrost/gui/reader_gui.py#L636 (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. Tom On Wed Feb 18 2015 at 12:00:27 PM tenspd137 . dcday...@gmail.com 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. -C On Tue, Feb 10, 2015 at 6:48 PM, tenspd137 . dcday...@gmail.com 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. :) Thanks and much appreciated! -C On Tue, Feb 10, 2015 at 2:44 PM, Thomas Caswell tcasw...@gmail.com 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 figure). 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 http://www.glueviz.org/en/stable/installation.html who may have solved many of these problems for you. Tom On Thu Feb 05 2015 at 1:03:16 PM tenspd137 . dcday...@gmail.com wrote: Hi all, I often have scripts that make a lot of plots, and I would like to be able to create the plots
Re: [Matplotlib-users] Fwd: Keep list of figures or plots and flip through list using UI
Probably in the embedding examples. There was an effort to start a mpl specific cook book a while a ago based around a wx/glade example but I have lost track of where that is. Tom On Wed, Feb 18, 2015, 12:49 Ryan Nelson rnelsonc...@gmail.com wrote: Tom et al., I don't know about this exact application... However, a couple of months ago, I asked on the Scipy mailing list about updating the Scipy cookbook page for Qt/Matplotlib ( http://wiki.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer), but I never got a response. The cookbook example is terribly out of date, so I worked out a pretty simple example that essentially reproduces the Qt backend plotting window. See my post ( http://mail.scipy.org/pipermail/scipy-dev/2014-December/020258.html) for an initial version of the code. I may have updated it since that time. If you are asking for an example for the MPL docs, I would be happy to write my example up with some picts, if you could tell me where the most appropriate place in the documentation would be for such an addition. (However, it sounds like Creator will supersede Designer for Qt5 so...) Ryan On Wed, Feb 18, 2015 at 12:31 PM, Thomas Caswell tcasw...@gmail.com wrote: A good tutorial on how to make mpl play nice with QtDesigner would be a useful thing to have in the documentation. It would be appreciated if you could take a crack at writing that up. Tom -- Forwarded message - From: tenspd137 . dcday...@gmail.com Date: Wed Feb 18 2015 at 12:25:10 PM Subject: Re: [Matplotlib-users] Keep list of figures or plots and flip through list using UI To: Thomas Caswell tcasw...@gmail.com Funny thing - shortly after I wrote you - I figured it out. I have a GUI/Dialog I created with designer that has a push button which cycles between two plots I stored in a list. If you would like to see my code, I would be more than happy to share. It isn't fabulous, but it show the mechanics. I will also take a look at what you just posted above. Much appreciated! -C On Wed, Feb 18, 2015 at 10:19 AM, Thomas Caswell tcasw...@gmail.com wrote: Please ping the mailing list again (I cc'd the list on this). See https://github.com/tacaswell/leidenfrost/blob/master/ leidenfrost/gui/reader_gui.py#L636 (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. Tom On Wed Feb 18 2015 at 12:00:27 PM tenspd137 . dcday...@gmail.com 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. -C On Tue, Feb 10, 2015 at 6:48 PM, tenspd137 . dcday...@gmail.com 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. :) Thanks and much appreciated! -C On Tue, Feb 10, 2015 at 2:44 PM, Thomas Caswell tcasw...@gmail.com 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 figure). 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
[Matplotlib-users] Fwd: Keep list of figures or plots and flip through list using UI
A good tutorial on how to make mpl play nice with QtDesigner would be a useful thing to have in the documentation. It would be appreciated if you could take a crack at writing that up. Tom -- Forwarded message - From: tenspd137 . dcday...@gmail.com Date: Wed Feb 18 2015 at 12:25:10 PM Subject: Re: [Matplotlib-users] Keep list of figures or plots and flip through list using UI To: Thomas Caswell tcasw...@gmail.com Funny thing - shortly after I wrote you - I figured it out. I have a GUI/Dialog I created with designer that has a push button which cycles between two plots I stored in a list. If you would like to see my code, I would be more than happy to share. It isn't fabulous, but it show the mechanics. I will also take a look at what you just posted above. Much appreciated! -C On Wed, Feb 18, 2015 at 10:19 AM, Thomas Caswell tcasw...@gmail.com wrote: Please ping the mailing list again (I cc'd the list on this). See https://github.com/tacaswell/leidenfrost/blob/master/ leidenfrost/gui/reader_gui.py#L636 (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. Tom On Wed Feb 18 2015 at 12:00:27 PM tenspd137 . dcday...@gmail.com 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. -C On Tue, Feb 10, 2015 at 6:48 PM, tenspd137 . dcday...@gmail.com 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. :) Thanks and much appreciated! -C On Tue, Feb 10, 2015 at 2:44 PM, Thomas Caswell tcasw...@gmail.com 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 figure). 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 http://www.glueviz.org/en/stable/installation.html who may have solved many of these problems for you. Tom On Thu Feb 05 2015 at 1:03:16 PM tenspd137 . dcday...@gmail.com 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: plots.append(plot(dataset)) 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! Thanks! : -- Dive into the World of Parallel Programming. The Go Parallel