Масштабирование фасетов в соответствии с данными и использование максимально доступного пространства с помощью FacetGrid в Seaborn - PullRequest
0 голосов
/ 10 сентября 2018

Я работаю с примером FacetGrid, представленным здесь , где FacetGrid объект инициализируется с фрагментом кода ниже, что приводит к следующему графику.

# Initialize the FacetGrid object
g = sns.FacetGrid(df, row="g", hue="g", height=2, aspect=10, palette=sns.color_palette("Blues", 1))

# Draw the densities in a few steps
g.map(sns.kdeplot, "x", clip_on=False, shade=True, alpha=1, lw=1.5, bw=.2)
g.map(sns.kdeplot, "x", clip_on=False, color="w", lw=2, bw=.2)
g.map(plt.axhline, y=0, lw=2, clip_on=False)

enter image description here

Я добавил метки значений ко всем фасетам, и я хотел бы изменить их еще больше, чтобы масштабировать каждый из фасетов, поскольку у меня есть много случаев, когда значения выходят за пределы максимального пространства фасета, и в некоторых случаях, когда это невозможно увидеть данные, поскольку значения недостаточно плотны. Первая группа наблюдений представлена ​​ниже, и вы можете увидеть, как метки выходят за пределы следующего аспекта, снижая четкость графика.

enter image description here

Чего я хотел бы добиться - это отдельного масштабирования каждого фасета со значениями, помеченными, и максимальным значением, размещенным в верхней части доступного пространства фасетов.

1 Ответ

0 голосов
/ 10 сентября 2018

Я решил, однажды закомментировав строку ниже, грани больше не пересекаются:

# Set the subplots to overlap
g.fig.subplots_adjust(hspace=-.25)

Кроме того, следуя предложениям в комментариях, я установил значение в положительное число, чтобы сблизить грани друг с другом, но не вводя перекрытия между метками соседних фасетов. Я нашел значение 0.2 для удовлетворения потребностей:

g.fig.subplots_adjust(hspace=.2)

Тогда sharey=False аргумент в конструкторе FacetGrid работает. Это выглядит намного чище, но значения не полностью заполняют все доступное пространство, но это, возможно, предназначено.

g = sns.FacetGrid(df, row="g", hue="g", height=2, aspect=10, sharey=False, palette=sns.color_palette("Blues", 1))

enter image description here

...