Итак, после некоторого поиска в коде для add_legend я нашел эту часть:
title = self._hue_var if title is None else title
try:
title_size = mpl.rcParams["axes.labelsize"] * .85
except TypeError: # labelsize is something like "large"
title_size = mpl.rcParams["axes.labelsize"]
# Set default legend kwargs
kwargs.setdefault("scatterpoints", 1)
if self._legend_out:
kwargs.setdefault("frameon", False)
# Draw a full-figure legend outside the grid
figlegend = self.fig.legend(handles, label_order, "center right",
**kwargs)
self._legend = figlegend
figlegend.set_title(title, prop={"size": title_size})
И основываясь на моем понимании (что является ограниченным предоставлением) этого кода, я предполагаю, что единственный способ сделать этоизменить параметры mpl.rcParams["axes.labelsize"]
. И это работает, но имеет следствие, что метки осей меняются в размере:
import pandas as pd
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
df = sns.load_dataset('iris')
mpl.rcParams["axes.labelsize"] = 20
my_plot = sns.PairGrid(df)
my_plot = my_plot.map_diag(sns.kdeplot, shade=True)
my_plot = my_plot.map_lower(sns.regplot, scatter_kws={'alpha':0.3})
my_plot.hue_vals = df["species"]
my_plot.hue_names = df["species"].unique()
my_plot.palette = sns.color_palette("Set2", len(my_plot.hue_names))
my_plot = my_plot.map_upper(sns.scatterplot).add_legend(title='Species', fontsize= '12')
Это не идеально для меня, так как это меняет также непреднамеренные части на диаграмме.