如何在我的Seaborn图中增加图例的字体大小?

use*_*933 14 python matplotlib legend seaborn

我有以下代码来创建Seaborn条带图.我很难弄清楚如何增加绘图中出现的图例的字体大小.

g=sns.stripplot(x="Market", y="Rate", hue="Group",data=myBenchmarkData, jitter=True, size=12, alpha=0.5)
g.axes.set_title("4* Rate Market and by Hotel Groups for Year 2016",fontsize=25)
g.set_xlabel("Market",fontsize=20)
g.set_ylabel("Rate (in EUR)",fontsize=20)
g.tick_params(labelsize=15)
plt.savefig ('benchmark1.png')
Run Code Online (Sandbox Code Playgroud)

我的x轴和y轴标签字体大小没问题,但我的绘图中图例的字体大小很小.怎么改呢?

Ser*_*ity 19

setp根据此示例使用matplotlib函数:

import seaborn as sns
import matplotlib.pylab as plt
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")

ax = sns.stripplot(x="sex", y="total_bill", hue="day", data=tips, jitter=True)
plt.setp(ax.get_legend().get_texts(), fontsize='22') # for legend text
plt.setp(ax.get_legend().get_title(), fontsize='32') # for legend title

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一种方法是更改font_scale所有图表plotting_context:http: //seaborn.pydata.org/generated/seaborn.plotting_context.html

  • @Archie FacetGrid 对象在其“_legend”属性中有一个图例。因此,您可以使用“setp(g._legend.get_title(), fontsize=32)”来更改它。 (2认同)

Maj*_*jor 15

今天有一个更简单的方法来做到这一点,只需设置你的数字,然后调用

plt.legend(fontsize='x-large', title_fontsize='40')
Run Code Online (Sandbox Code Playgroud)

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html

可能取决于您使用的 matplotlib 版本。我使用的是 2.2.3,它有fontsize参数但没有title_fontsize.