With Paul's suggestions (greatly appreciated!) I almost have this thing working....there is still something strange going on in that when I call get_window_extent() on the legend, I always get ones and zeros no matter where it is...but that's for another post on another day.
This one, I hope, is an easy one. The last thing I need to do is position the legend precisely. For example, the code below doesn't quite position the top left corner of the legend at the top left corner in the plot: import pylab,matplotlib pylab.plot([1,2,3,4,5],[1,2,3,4,5],"bo",label="data") ax = pylab.gca() pylab.legend(bbox_to_anchor=(0,1),loc=2) # draw an X to make sure of coordinates. ax.lines.append(matplotlib.lines.Line2D((0,1),(0,1),transform=ax.transAxes,color='blue')) ax.lines.append(matplotlib.lines.Line2D((0,1),(1,0),transform=ax.transAxes,color='red')) pylab.show() It's close, but not there.....so the question becomes, how do I place a legend exactly at the coordinates that I want? On Sat, Oct 30, 2010 at 1:16 AM, Paul Ivanov <pivanov...@gmail.com> wrote: > Daniel Hyams, on 2010-10-29 23:48, wrote: >> Thanks Paul! Your suggestion got me part of the way, but I've run >> into another problem...I'm using draggable legends, I'm also wanting >> to fetch the current position of the legend after a drag. The >> draggable legend always updates 'loc', and not 'bbox_to_anchor', so >> I'm afraid that I'm stuck manipulating 'loc' for my purposes and not >> the bbox_to_anchor property. >> >> Is there really no way to get the dimensions of a legend? It has to be >> there somewhere, otherwise the legend wouldn't know where to draw >> itself ;) > > Hi Daniel, > > I'm replying to the list, so that someone correct me if I'm > wrong, or point out a better way of doing this. > > there totally is a way to get the dimensions of a legend. > > You can get it in pixel coordinates using > > l = plt.legend() > bbox = l.get_window_extent() > bbox.width,bbox.height > > or in axes coordinates using something like > > bbox2 = bbox.transformed(l.axes.transAxes.inverted()) > bbox2.width,bbox2.height > > The bboxes have other handy attributes like p0,p1,x0,x1,y0,y1 > etc, as well as methods like bbox.padded(), etc. > > best, > -- > Paul Ivanov > 314 address only used for lists, off-list direct email at: > http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 > > ------------------------------------------------------------------------------ > Nokia and AT&T present the 2010 Calling All Innovators-North America contest > Create new apps & games for the Nokia N8 for consumers in U.S. and Canada > $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing > Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store > http://p.sf.net/sfu/nokia-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > -- Daniel Hyams dhy...@gmail.com ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users