putting a legend in its place

I mailed this to the matplotlib-users list, but it never showed, so I'm trying this one. Apologies
if it shows up in both places :(

What I'm trying to do can be boiled down to the following: I'm trying to

place a legend precisely, using the top left corner of legend as the
"sticky" point. In other words, if I want to place the legend here:

<details class='elided'>
<summary title='Show trimmed content'>&#183;&#183;&#183;</summary>

+---------------------------------+-----------+

> > >
> > legend |
> > >
> The plot... |-----------+
> >

> >
> >
> >
> >
> >
> >

+---------------------------------+

I would have thought that I would set bbox_to_anchor = (0,0,1,1), and loc =
(1,1). I found out quickly, though, that this places the legend like this:

                                  +-----------+

                                  > >
                                  > legend |
                                  > >
+---------------------------------+-----------+

> >
> >
> >
> The plot... |
> >

> >
> >
> >
> >
> >
> >

+---------------------------------+

Which makes perfect sense from matplotlib's perspective. So all I need to
do is figure out how tall the legend is, and subtract that off the y
coordinate before passing 'loc' off to matplotlib's legend. I just can't

seem to figure out how to get that number. I tried
self.ax.get_legend().get_frame().get_height(), but that just returns 1 all
the time. I browsed all through the legend object (a live one) and just can't
find any numbers at all that look like the legend width/height, in any coordinate

system. I hope I'm missing something obvious!

Ascii art is fun! :)


Daniel Hyams
dhyams@…149…