Разделение скрипичных участков в морском заливе с помощью линии - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь построить распределение с несколькими оттенками с Seaborn, но я нахожу, что графики трудно отследить до отметки, к которой они принадлежат. Я пытался добавить сетку, но сетка показывает только размерность распределения, поэтому отделяет само распределение, но не разные распределения друг от друга. Возможно ли, чтобы Seaborn добавил линию сетки между различными группами / оттенками скрипки? Для иллюстрации возьмите один из графиков из документов . Я добавил то, что хотел бы видеть на этом графике (я сделал ширину этих разделителей довольно большой для целей иллюстрации, в решении, которое я бы хотел, чтобы они были такими же толстыми, как линии сетки):

Plots with separators

1 Ответ

1 голос
/ 23 марта 2020

Вы можете использовать matplotlib axvline для рисования вертикальных линий в позициях 0.5, 1.5, ...

import numpy as np
import seaborn as sns
sns.set(style="whitegrid")

tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", hue="smoker",
                    data=tips, palette="muted")
for i in range(len(np.unique(tips['day'])) - 1):
    ax.axvline(i + 0.5, color='grey', lw=1)
plt.show()

result

В качестве альтернативы вы может установить небольшие отметки в этих позициях и включить вспомогательные линии сетки для оси X.

...