图例大小/标记在海洋中

时间:2019-05-06 22:49:04

标签: python legend scatter-plot

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

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

我似乎无法全神贯注。引用过多,令人困惑。

2 个答案:

答案 0 :(得分:2)

我已经花了一些时间来研究这个问题,是的,您说的很对。

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

起作用的方式

我建议您采用两种主要方法来增加图例的大小(从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中,还有一个答案可以解决直接修改图例的问题。它使用_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 repository提交问题,也许他们会解决(您可以参考问题)。更有希望的是,有一种 方法可以做到这一点,他们将简单指出如何实现。

祝你好运:)

答案 1 :(得分:0)

如果仍然有人迷路于这篇文章,这是一个对我有用的解决方案:

How to set legend marker size and alpha?

所需的代码为:

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