繁体   English   中英

relplot seaborn 中的图例大小/标记

[英]Legend size/marker in relplot seaborn

我一直在寻找 SO 以增加 relplot 中的图例/色调大小。

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')

我似乎无法绕过它。 有这么多混合引用,这有点令人困惑。

我花了一些时间来研究这个,是的,你说它令人困惑是正确的。

我还将假设您在谈论文本大小,而不是标记大小。

有效的方法

我建议您增加图例大小的主要方法有两种(从此处检索):

  • 使用sns.set()全局缩放字体。 例如:
sns.set(font_scale=1.5)
# plotting code here...
  • 使用sns.plotting_context()在本地sns.plotting_context()字体。 例如:
with sns.plotting_context("notebook", font_scale=1.5):
    # plotting code here...

这两种方法的问题在于它们还会增加其他元素的大小 因此,例如,轴标签将与图例一起增长:

行不通的方式

在提到的 SO链接中,还有一个解决直接修改图例的答案。 它采用了私有财产_legend的的FacetGrid并直接增加了文字大小:

g = sns.relplot(x='sepal_length', y='sepal_width', hue='species', data=iris)
plt.setp(g._legend.get_texts(), fontsize=16)

但是,这种方法会严重破坏格式。 乍一看,我认为这是因为FacetGrid使用图例尺寸计算其大小。 因此,事后更改图例会将事情搞砸。

该怎么办?

从我的研究来看,似乎没有简单的方法可以做你想做的事。 您可以向seaborn 存储库提交问题,也许他们会修复它(您可以参考您的问题)。 更希望,有一种方法可以做到这一点,他们会简单地指出如何。

祝你好运 :)

如果有人仍然偶然发现这篇文章,这里有一个对我有用的解决方案:

如何设置图例标记大小和 alpha?

所需的代码是:

for lh in g._legend.legendHandles: 
    lh.set_alpha(1)
    lh._sizes = [50] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM