Python 如何使用seaborn FaceGrid更改字体大小?
我已使用Python 如何使用seaborn FaceGrid更改字体大小?,python,seaborn,Python,Seaborn,我已使用seaborn中的factorplot绘制了我的数据,并获取了FaceGrid对象,但仍然无法理解如何在这样的绘图中设置以下属性: 图例大小:当我绘制很多变量时,我得到非常小的图例,字体很小 y和x标签的字体大小(与上述问题类似) 您可以将调用中的字体放大到sns.set() FaceGrid绘图确实产生了非常小的标签。尽管@paul-h描述了使用sns.set作为更改字体缩放的一种方式,但它可能不是最佳解决方案,因为它将更改所有绘图的font\u缩放设置 您可以使用更改当前打印的设置
seaborn
中的factorplot
绘制了我的数据,并获取了FaceGrid
对象,但仍然无法理解如何在这样的绘图中设置以下属性:
您可以将调用中的字体放大到
sns.set()
FaceGrid绘图确实产生了非常小的标签。尽管@paul-h描述了使用
sns.set
作为更改字体缩放的一种方式,但它可能不是最佳解决方案,因为它将更改所有绘图的font\u缩放设置
您可以使用更改当前打印的设置:
with sns.plotting_context(font_scale=1.5):
sns.factorplot(x, y ...)
我对@paul-H代码做了一些小修改,这样您就可以独立设置x/y轴和图例的字体大小。希望有帮助:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.random.normal(size=37)
y = np.random.lognormal(size=37)
# defaults
sns.set()
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', linestyle='none', label='small')
ax.legend(loc='upper left', fontsize=20,bbox_to_anchor=(0, 1.1))
ax.set_xlabel('X_axi',fontsize=20);
ax.set_ylabel('Y_axis',fontsize=20);
plt.show()
这是输出:
对于图例,您可以使用
plt.setp(g._legend.get_title(), fontsize=20)
其中g是调用生成它的函数后返回的facetgrid对象 下面的回答是正确的,应该会帮助你,但我想说,听起来你在IPython笔记本上绘图,因此问题实际上与seaborn无关,但如果笔记本上的数字最终大于分配给他们的div,则笔记本会缩小数字。如果保存图形,所有内容都应该是您期望的大小。此外,如果您在列上绘制了许多变量,而没有行变量,则可以使用col\u wrap
将面“包装”到多行上,这可能会有所帮助。@mwaskom说“font\u scale
如果上下文为None
,则忽略font\u scale
,因此您需要打印上下文(“笔记本”,font\u scale=5.5)
或类似内容。”()大小与默认matplotlib字体大小相对。对我来说,最好使用plt.rc()更改字体大小)在我的脚本或Jupyter笔记本顶部调用。请看,这似乎覆盖了所选主题。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.random.normal(size=37)
y = np.random.lognormal(size=37)
# defaults
sns.set()
fig, ax = plt.subplots()
ax.plot(x, y, marker='s', linestyle='none', label='small')
ax.legend(loc='upper left', fontsize=20,bbox_to_anchor=(0, 1.1))
ax.set_xlabel('X_axi',fontsize=20);
ax.set_ylabel('Y_axis',fontsize=20);
plt.show()
plt.setp(g._legend.get_title(), fontsize=20)