Я использую коробочную диаграмму, чтобы показать различия в распределении значений между группами.Более низкий (25) и более высокий (75) процентили и медиана указывают на распределение и основные различия между группами.Усы, однако, менее ясны.По умолчанию в matlibplot или seaborn усы боксплота представляют собой кратное (по умолчанию: 1.5) диапазон внутренней четверти (IQR), который представляет собой диапазон значений, охватываемых внутренним блоком.Точки за пределами этого диапазона будут определены как выбросы.И seaborn, и matlibplot имеют одну и ту же команду для изменения местоположения усов:
whis : float,
Proportion of the IQR past the low and high quartiles to extend the plot whiskers.Points outside this range will be identified as outliers.
Например:
boxplots = ax.boxplot(myData, whis=1.5)
В качестве альтернативы, matlibplot также позволяет основывать усы на процентилях.Это работает лучше для истории, которую я пытаюсь рассказать своими данными.Например:
boxplots = ax.boxplot(myData, whis=[5, 95])
В отличие от matlibplot, whis=[5, 95]
не работает в Seaborn.Сейчас я ищу способ определения усов в Сиборне на основе процентилей.
Моей первой идеей было получить значения усов из matlibplot на основе процентилей и найти соответствующее пропорциональное значение вискера IQR.Это то, что я сделал:
for w in np.arange(0.00,2.00, 0.01):
fig, ax = plt.subplots(ncols=2, nrows=1,figsize=(8, 6))
bp = ax[0].boxplot(myData, whis=[5, 95])
ax[0].set_xlabel('bp')
ap = ax[1].boxplot(myData, whis=w)
ax[1].set_xlabel('ap')
r = 3
alo = (np.round(bp['whiskers'][0].get_ydata(), r))
blo = (np.round(ap['whiskers'][0].get_ydata(), r))
ahi = (np.round(bp['whiskers'][1].get_ydata(), r))
bhi = (np.round(ap['whiskers'][1].get_ydata(), r))
plt.close()
if [alo == blo] == [True, True]:
if [ahi == bhi] == [True, True]:
print w, "|", alo[1], "=", blo[1], '&', ahi[1], "=", bhi[1]
Проблема, однако, в том, что это работает только для совершенно нормального распределения, которому не соответствуют мои данные.Поэтому я бы очень хотел найти способ использовать процентили для усов на боксерских площадках Seaborn.Есть ли способ сделать это?