Changing font size of legend title in Python pylab rose/polar plot

15,878

Solution 1

quick way to adjust font sizes in legend and legend title:

import numpy as np
import pylab as plt

f,ax = plt.subplots()
x = np.arange(10)
y = np.sin(x)
ax.plot(x,y, label = 'sin')

leg = ax.legend(fontsize = 'large')
leg.set_title("title", prop = {'size':'x-large'})

f.show()

Solution 2

There's a similar question here: How to set font size of Matplotlib axis Legend?

I manage to change the title's font size of the title using the second answer, which I found to be the simplest one. You can also change the color title and other properties. I got the following code:

leg=legend((x3, x4,),shadow=False, loc=loca,title=labelE,prop={'size':8})
leg.draw_frame(False)
ax111.get_legend().get_title().set_fontsize('36')
ax111.yaxis.set_tick_params(labelsize=10)

My guess is that it is possible be to change any title property replacing the set_fontsize('#') to other parameter as listed here:

http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend

Solution 3

The pyplot api accepts a title_fontsize parameter for pyplot.legend().

Share:
15,878
LaurieW
Author by

LaurieW

Updated on June 04, 2022

Comments

  • LaurieW
    LaurieW about 2 years

    I'm trying to change the font size of the title of an existing legend on a rose, or 'polar', plot. Most of the code was written by somebody else, who is away. I've added:-

    ax.legend(title=legend_title)
    setp(l.get_title(), fontsize=8)
    

    to add the title 'legend_title', which is a variable that the user enters a string for in a a different function that uses this code. The second line of this doesn't return an error but doesn't appear to do anything either. The complete code is below. 'Rose' and 'RoseAxes' are modules/functions written by somebody. Does anyone know of a way to change the legend title font size? I've found some examples for normal plots but can't find any for rose/polar plots.

    from Rose.RoseAxes import RoseAxes
    from pylab import figure, title, setp, close, clf
    from PlotGeneration import color_map_xml
    
    fig = figure(1)
    rect = [0.02, 0.1, 0.8, 0.8]
    ax = RoseAxes(fig, rect, axisbg='w')
    fig.add_axes(ax)
    if cmap == None:
        (XMLcmap,colors) = color_map_xml.get_cmap('D:/HRW/VET/HrwPyLibs/ColorMapLibrary/paired.xml',255)
    else:
        XMLcmap = cmap
    
    bqs = kwargs.pop('CTfigname', None)
    ax.box(Dir, U, bins = rose_binX, units = unit, nsector = nsector, cmap = XMLcmap, lw = 0, **kwargs )
    
    l = ax.legend()
    ax.legend(title=legend_title)
    setp(l.get_texts(), fontsize=8)
    setp(l.get_title(), fontsize=8)
    

    Thanks for any help