Размер легенды / маркер в релплот - PullRequest
1 голос
/ 07 мая 2019

Я искал в 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')

Кажется, я не могу обернуть его вокруг.Есть так много смешанных ссылок, это все немного сбивает с толку.

1 Ответ

2 голосов
/ 07 мая 2019

Я провел некоторое время, копаясь в этом, да, вы правы, говоря, что это сбивает с толку.

Я также предполагаю, что вы говорите о размере текста, а не о размере маркера.

Пути, которые работают

Существует два основных способа увеличить размер легенды (взято из здесь ):

  • Глобальное увеличение шрифта с помощью 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 есть также ответ, который касается непосредственно изменения легенды. Он использует частную собственность _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 репозиторий и, возможно, они исправят его (вы можете дать ссылку на свой вопрос). Надеюсь, что - это способ сделать это, и они просто укажут, как.

Удачи:)

...