Сюжет для скрипки: одна скрипка, две половинки по логическому значению - PullRequest
0 голосов
/ 07 мая 2020
• 1000 изменив ось x на x=smoker, я получил следующий график (ссылка ниже).
import seaborn as sns
sns.set(style="whitegrid", palette="pastel", color_codes=True)

# Load the example tips dataset
tips = sns.load_dataset("tips")

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x="smoker", y="total_bill", hue="smoker",
               split=True, inner="quart", data=tips)
sns.despine(left=True)

Это итоговый график

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

Можно ли это сделать с помощью seaborn? А может с другой библиотекой?

Спасибо!

1 Ответ

1 голос
/ 07 мая 2020

Это потому, что вы указываете две вещи для оси x в этой строке x="smoker". А именно, что он отображает курильщика - да и курильщика - нет.

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

sns.set(style="whitegrid", palette="pastel", color_codes=True)

# Load the example tips dataset
tips = sns.load_dataset("tips")

# Draw a nested violinplot and split the violins for easier comparison
sns.violinplot(x=['Data']*len(tips),y="total_bill", hue="smoker",
               split=True, inner="quart",
               palette={"Yes": "y", "No": "b"},
               data=tips)
sns.despine(left=True)

Это выводит следующее:
output

...