Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2018 11:44:01

nightwing95
Зарегистрирован: 2018-12-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Как упорядочить с ящики с усами по возрастанию на графике?

На основе данных таблицы построен график ящиков с усами.
Как упорядочить города слева направо по возрастанию значения относительной заболеваемости?

 import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel(r'C:\Users\cinem\Desktop\нир\3-6.xlsx')
(df.pivot_table(columns='town_name', index='cld_year',
                values='относительная заболеваемость', aggfunc='mean', fill_value=0)
   .plot.box(rot=90, figsize=(16,10)))
plt.tight_layout()
plt.show()

Отредактировано nightwing95 (Дек. 18, 2018 11:44:22)

Прикреплённый файлы:
attachment BV5Gg.png (87,4 KБ)

Офлайн

#2 Дек. 19, 2018 07:13:26

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Как упорядочить с ящики с усами по возрастанию на графике?

Нужно определиться по какому параметру делать сортировку: по среднему значению, по разбросу вокруг среднего или по медиане.
Если делать сортировку по медиане, на вашем рисунке медиана, похоже, это зелененькая линия, которая находится внутри прямоугольничков, то это все можно сделать так:

 pivoted_data = df.pivot_table(columns='town_name', index='cld_year',  values='относительная заболеваемость', aggfunc='mean', fill_value=0)
sort_inds = pd.np.argsort(pivot.median(axis=0)) #  pivot.mean, pivot.std -- alternatives
pivoted_data.iloc[:, sort_inds].boxplot(rot=90, figsize=(16,10))
plt.show()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version