Как выровнять медиану, информацию о квартиле с прямоугольным графиком

#matplotlib #seaborn

#matplotlib #сиборн

Вопрос:

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

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

 a4_dims = (11.7, 8.27)
fig, ax = plt.subplots(figsize=a4_dims)
sns.boxplot(x='2017Seg', y='AbsYr1Dif', data=yr1, width=.7, showfliers=False,
           order=["<10","10-19","20-49","50-99","100-249","250 "])

medians = yr1.groupby(['2017Seg'])['AbsYr1Dif'].median().values
median_labels = [str(np.round(s, 2)) for s in medians]

pos = range(len(medians))
for tick,label in zip(pos,ax.get_xticklabels()):
    ax.text(pos[tick], medians[tick]   0.02, median_labels[tick], 
            horizontalalignment='center', size='small', color='w', weight='semibold')

    upperquart = yr1.groupby(['2017Seg'])['AbsYr1Dif'].quantile(.75).values
upperquart_labels = [str(np.round(s, 2)) for s in upperquart]

pos = range(len(upperquart))
for tick,label in zip(pos,ax.get_xticklabels()):
    ax.text(pos[tick], upperquart[tick]   0.02, upperquart_labels[tick], 
            horizontalalignment='left', size='small', color='b', weight='semibold')

lowerquart = yr1.groupby(['2017Seg'])['AbsYr1Dif'].quantile(.25).values
lowerquart_labels = [str(np.round(s, 2)) for s in lowerquart]

pos = range(len(lowerquart))
for tick,label in zip(pos,ax.get_xticklabels()):
    ax.text(pos[tick], lowerquart[tick] - 0.05, lowerquart_labels[tick], 
            horizontalalignment='right', size='small', color='b', weight='semibold')
  

не удалось использовать инструмент snip.

Порядок, в котором отображается информация о медиане и квантиле, является естественным порядком сортировки перед использованием сортировки в определении boxplot

Образец данных, которые не работают:

Образец данных не работает

Образец данных, которые работают:

Примеры данных, которые ранее работали

График не работает — медиана / квантиль не в порядке

График не работает - медиана / квантиль не в порядке

Комментарии:

1. Можете ли вы опубликовать образец данных yr1 ? И, возможно, образец данных, который работал раньше.

2. Не работает ID 2017Seg AbsYr1Dif AbsYr2Dif 0 gre 10-19 0,018 0,168715715 1 jks 10-19 0,027 0,119801383 2 hfe <10 0,064 0,4282475 3 skf 10-19 0,099 0,205606116 4 jje 10-19 0,014 0,558228333 Работал до ID PredictiveScore ScoreSeg bbd 1.2 7-8 cfd 0,549 6-6 gre 0,714 6-6 tub 1,016 1-3 sjk 0,377 4-5 klk 0,813 6-6

3. Не уверен, что это разборчиво. Как я могу опубликовать образец набора из Excel

4. Спасибо, было бы лучше, если бы вы просто отредактировали свой вопрос и разместили его там 🙂

5. @HS-Nebula — обновлено.