relplot seaborn 中的图例 size/marker
Legend size/marker in relplot seaborn
我一直在寻找 SO 以增加 relplot 中的 legend/hue 大小。
plt.rcParams["axes.labelsize"] = 20
g = sns.relplot(x='Time(days)', y='Duration Total (s)', hue='Outcome', data=t1,height=15, aspect=1, s=50);
plt.suptitle("a_10",fontsize=25, fontweight='bold')
我似乎无法理解它。有太多的混合引用,这有点令人困惑。
我花了一些时间来研究这个,是的,你说它令人困惑是对的。
我还假设您是在谈论文本大小,而不是标记大小。
有效的方法
我建议您增加图例大小的主要方法有两种(取自here):
- 使用
sns.set()
全局放大字体。例如:
sns.set(font_scale=1.5)
# plotting code here...
- 正在使用
sns.plotting_context()
在本地放大字体。例如:
with sns.plotting_context("notebook", font_scale=1.5):
# plotting code here...
这两种方法的问题在于它们还增加了其他元素的大小。因此,例如,轴标签将与图例一起增长:
行不通的方法
在提到的SO link中,还有一个解决直接修改图例的答案。它使用FacetGrid
的private属性_legend
,直接增加文字大小:
g = sns.relplot(x='sepal_length', y='sepal_width', hue='species', data=iris)
plt.setp(g._legend.get_texts(), fontsize=16)
但是,这种方法严重破坏了格式。快速浏览一下,我认为这是因为 FacetGrid
使用图例尺寸计算其大小。所以,事后更改图例会把事情搞砸。
怎么办?
根据我的研究,似乎没有简单的方法可以做您想做的事。您可以向 seaborn repository 提交问题,也许他们会解决它(您可以参考您的问题)。更有希望的是,是一种方法,他们会简单地指出方法。
祝你好运:)
如果还有人遇到这个问题 post,这里有一个对我有用的解决方案:
所需代码为:
for lh in g._legend.legendHandles:
lh.set_alpha(1)
lh._sizes = [50]
我一直在寻找 SO 以增加 relplot 中的 legend/hue 大小。
plt.rcParams["axes.labelsize"] = 20
g = sns.relplot(x='Time(days)', y='Duration Total (s)', hue='Outcome', data=t1,height=15, aspect=1, s=50);
plt.suptitle("a_10",fontsize=25, fontweight='bold')
我似乎无法理解它。有太多的混合引用,这有点令人困惑。
我花了一些时间来研究这个,是的,你说它令人困惑是对的。
我还假设您是在谈论文本大小,而不是标记大小。
有效的方法
我建议您增加图例大小的主要方法有两种(取自here):
- 使用
sns.set()
全局放大字体。例如:
sns.set(font_scale=1.5)
# plotting code here...
- 正在使用
sns.plotting_context()
在本地放大字体。例如:
with sns.plotting_context("notebook", font_scale=1.5):
# plotting code here...
这两种方法的问题在于它们还增加了其他元素的大小。因此,例如,轴标签将与图例一起增长:
行不通的方法
在提到的SO link中,还有一个解决直接修改图例的答案。它使用FacetGrid
的private属性_legend
,直接增加文字大小:
g = sns.relplot(x='sepal_length', y='sepal_width', hue='species', data=iris)
plt.setp(g._legend.get_texts(), fontsize=16)
但是,这种方法严重破坏了格式。快速浏览一下,我认为这是因为 FacetGrid
使用图例尺寸计算其大小。所以,事后更改图例会把事情搞砸。
怎么办?
根据我的研究,似乎没有简单的方法可以做您想做的事。您可以向 seaborn repository 提交问题,也许他们会解决它(您可以参考您的问题)。更有希望的是,是一种方法,他们会简单地指出方法。
祝你好运:)
如果还有人遇到这个问题 post,这里有一个对我有用的解决方案:
所需代码为:
for lh in g._legend.legendHandles:
lh.set_alpha(1)
lh._sizes = [50]