Скрипичный сюжет для положительных значений с python - PullRequest
2 голосов
/ 08 января 2020

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

В официальной документации seaborn https://seaborn.pydata.org/generated/seaborn.violinplot.html можно увидеть примеры с "total_bill" и "tip", которые могут не быть отрицательным. Однако на графиках скрипки отрицательные значения. Например,

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", split=True)

enter image description here

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

1 Ответ

2 голосов
/ 23 января 2020

Вы можете использовать ключевое слово cut=0, чтобы ограничить свой график диапазоном данных. Если данные не имеют отрицательных значений, это приведет к обрыву конца скрипки до нуля. Используя тот же пример, что и вы, попробуйте:

ax = sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted", split=True,cut=0)

...