Я создаю коробочный график и хочу метки для медианы и квантилей.Я также указываю порядок, в котором я хочу показать сюжет.График отображается в определенном порядке, но медиана и квантиль не отображаются.
Я успешно использовал этот код на других блочных графиках, используя разные имена столбцов, но он не будет работать с этими конкретными столбцами
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')
не удалось использовать инструмент для обрезки.
Порядок, в котором отображается медиана и квантильная информация, является естественным порядком сортировки перед использованием сортировки в определении боксплота
Пример данных, которые не работают:
Пример данных, которые работают:
Не работает блокпост - медиана / квантиль не в порядке