Постройте дополнительные квантили на графиках Seaborn Violin

Используя пример на http://seaborn.pydata.org/generated/seaborn.violinplot. HTML:

import seaborn as sns
sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
ax = sns.violinplot(x="day", y="total_bill", data=tips)

Сюжет для скрипки
(источник: pydata.org)

Как я могу нарисовать две маленькие горизонтальные линии сверху каждой скрипки (например, колпачки планок погрешностей, обозначающие 2,5-процентиль и 97,5-процентиль распределения?


person p-value    schedule 08.01.2017    source источник
comment
пара вещей: 1) 2,5 и 97,5 процентили данных не являются доверительным интервалом 2) просто используйте собственный метод plot объекта оси matplotlib (ax, в вашем случае)   -  person Paul H    schedule 08.01.2017
comment
1) Исправил, спасибо! Извините, я немного злоупотребил этим термином... 2) Думаю, моя проблема в том, что я не знаю, как Seaborn обрабатывает категориальные значения по оси x. Например, как мне узнать x-значение Тура?   -  person p-value    schedule 08.01.2017
comment
У топоров много методов. Найдите ax.get_xlim() для начала.   -  person Paul H    schedule 08.01.2017
comment
Спасибо! Я вижу, что четверг, пятница, ... фактически соответствует диапазону (3).   -  person p-value    schedule 09.01.2017


Ответы (1)


Вот довольно хакерское решение:

Как насчет того, чтобы нарисовать еще один блок-график поверх графика для скрипки? (И спрятать коробку в блочной диаграмме.)

Вот результат с использованием 2,5 и 97,5:

введите здесь описание изображения

import seaborn as sns
import matplotlib.pyplot as plt

sns.set_style("whitegrid")
tips = sns.load_dataset("tips")

sns.boxplot(x="day", y="total_bill", data=tips, showfliers=False, showbox=False, whis=[2.5,97.5])
sns.violinplot(x="day", y="total_bill", data=tips)

plt.show()
person Sait    schedule 08.01.2017
comment
Спасибо! На самом деле я только что нашел похожее решение, используя ax.errorbar, но установив для всех line_widths значение 0, чтобы остались только заглавные буквы. - person p-value; 09.01.2017
comment
Можете ли вы поделиться тем, как вы использовали планку погрешностей, не влияя на фигуру. Когда я когда-либо использую планку погрешностей, линии фигурных комнат и я не могу контролировать ось X, так как они просто метки. - person bicepjai; 05.03.2020