Hi, I just discovered matplotlib, it seems really cool &
> just what I have been looking for.
> I have a hopefully simple question: How can I change the
> font size and type of the legend, and how can I remove the
> frame around the legend?
Hi Jorgen,
Right now there are no nice functions to access the attributes of the
legend, though they will be easy to add. Basically, we need things
like
leg = axes.get_legend() # return the axes Legend instance
and
leg.get_texts() # return the Text instances in the legend
leg.get_lines() # return the Line2D instances in the legend
leg.get_patches()# return the Patch instance in the legend
leg.get_frame() # return the Rectangle bounding box
leg.draw_frame(False)
Here is some code that accesses the attributes directly. Not elegant,
but may get you what you want until proper accessor methods are added
Eg, in legend_demo, you could write
texts = gca()._legend._texts
set(texts, 'fontsize', 14) # use big fonts for the legend text
set(texts, 'fontname, 'courier') # change the fontname
box = gca()._legend._patch # the Rectangle instance containing the legend
box.set_facecolor('b') # make the legend frame blue
handles = gca()._legend._handles # the line / patch instance inside the legend
See the Line2D, Text and Patch classes in matplotlib.lines,
matplotlib.text and matplotlib.patches for information on what
attributes you can set for each of these types.
If you want to add the required methods to axes and legend to expose
these attributes, it is not hard -- send me a patch. Otherwise I'll
put it on my list of things to do.
JDH