@@ -237,6 +237,10 @@ def _update_bbox_to_anchor(self, loc_in_canvas):
237237title : str or None
238238 The legend's title. Default is no title (``None``).
239239
240+ title_prop : None or `matplotlib.font_manager.FontProperties` or dict
241+ The font properties of the legend's title. If None (default), the current
242+ :data:`matplotlib.rcParams` will be used.
243+
240244title_fontsize : int or {'xx-small', 'x-small', 'small', 'medium', 'large', \
241245 'x-large', 'xx-large'}, default: :rc:`legend.title_fontsize`
242246 The font size of the legend's title.
@@ -323,6 +327,7 @@ def __init__(self, parent, handles, labels,
323327 # box, none use rc
324328 shadow = None ,
325329 title = None , # set a title for the legend
330+ title_prop = None , # properties for the legend title
326331 title_fontsize = None , # the font size for the title
327332 framealpha = None , # set frame alpha
328333 edgecolor = None , # frame patch edgecolor
@@ -507,10 +512,22 @@ def __init__(self, parent, handles, labels,
507512 self ._loc_used_default = tmp # ignore changes done by _set_loc
508513
509514 # figure out title fontsize:
510- if title_fontsize is None :
511- title_fontsize = mpl .rcParams ['legend.title_fontsize' ]
512- tprop = FontProperties (size = title_fontsize )
513- self .set_title (title , prop = tprop )
515+ if title_prop is None :
516+ if title_fontsize is None :
517+ title_fontsize = mpl .rcParams ["legend.title_fontsize" ]
518+ self .title_prop = FontProperties (
519+ size = title_fontsize )
520+ else :
521+ self .title_prop = FontProperties ._from_any (title_prop )
522+ if isinstance (title_prop , dict ) and "size" not in title_prop :
523+ if title_fontsize is None :
524+ title_fontsize = mpl .rcParams ["legend.title_fontsize" ]
525+ self .title_prop .set_size (title_fontsize )
526+ else :
527+ if title_fontsize is not None :
528+ self .title_prop .set_size (title_fontsize )
529+
530+ self .set_title (title , prop = self .title_prop )
514531 self ._draggable = None
515532
516533 # set the text color
0 commit comments