From: John H. <jdh...@ac...> - 2006-10-30 15:31:31
|
>>>>> "David" == David Goldsmith <Dav...@no...> writes: David> OK, I was afraid of that; in that case, is there some way David> to get the height and width of the legend (so I can do what David> I want programatically)? Thanks again, Again, afraid not. At least nothing obvious. The legend placement is done dynamically at draw time, and so it will be difficult to get this information ahead of time. There might be some cleverness that can be applied, but nothing easy. One option would be connect to the draw event, and then inspect the legend properties, and then place it where you want knowing the width and the height. Not too elegant, but serviceable. Here is an untested sketch def ondraw(event): if ondraw.done: return # in pixels left,bottom,width,height = leg.legendPatch.get_window_extent().get_bounds() # move your legend.... ondraw.done = True ondraw.done = False fig = figure() ax = fig.add_subplot(111) leg = ax.legend(blah) fig.canvas.mpl_connect('draw_event', ondraw) It might be better to patch legend directly to do what you want and send the patch our way. Or subclass it. JDH |