Oops, forgot to cc the list... ---------- Forwarded message ---------- From: Anthony Floyd <[EMAIL PROTECTED]> Date: Wed, Aug 6, 2008 at 12:28 PM Subject: Re: [Matplotlib-users] Moving legend with mouse? To: Søren Nielsen <[EMAIL PROTECTED]>
On Fri, Aug 1, 2008 at 6:10 AM, Søren Nielsen <[EMAIL PROTECTED]> wrote: > > I'm using matplotlib 0.98 together with wxpython 2.8.8.0. It would be nice > to be able to click on the legend and move it with the mouse. Is that > possible? Is there a simple way to do this? Has anyone tried this or can > someone point in the direction? > > Thanks, > Soren Hi Soren, Sorry for the delay. This is pretty easy to do if you're using the API. Our code is pretty ... um, integrated, so I can't provide you with a detailed step-by-step, but here's the general idea: - On a FigureCanvas, use mpl_connect to hook into the 'motion_notify_event'. So, we have "self.mpl_connect('motion_notify_event', self._onMouseMove)" - onMouseMove checks to see if we've previously picked the legend and adds mplEvent.x and mplEvent.y to the original pick location and calls our self._moveLegend function - The _moveLegend routine is: def _moveLegend(self, x, y, autoDraw=True): height = float(self.figure.bbox.height()) width = float(self.figure.bbox.width()) dx = x/width dy = y/height self._legendLocation = (dx, dy) self.plot.getLegend().setLocation(self._legendLocation) self._legend._loc=(dx,dy) if autoDraw: self.draw() Now, you won't need most of this, but the important things here are the dx,dy calculations and the _legend._loc=(dx,dy) assignment. It's not a very complete set of instructions, but it might get you pointed in the right direction. Legend dragging in this manner works quite smoothly for us. Regards, Anthony. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users