Сортировка значений гистограммы, сгруппированных по убыванию - PullRequest
0 голосов
/ 29 апреля 2019

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

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

df1 = df.drop(['Total Volume', '4046', '4225', '4770', 'Total Bags', 'Small Bags', 'Large Bags', 'XLarge Bags', 'year', 'Unnamed: 0', 'Date'], axis=1)
df1 = df1.sort_values(['AveragePrice'],ascending=True).groupby('region').mean().plot(kind='bar', figsize=(15,5))

График по-прежнему выводит значения в алфавитном порядке по регионам.enter image description here

1 Ответ

0 голосов
/ 29 апреля 2019

Сначала сгруппируйте значения, затем отсортируйте и измените ascending=True на False:

df1 = df1.groupby('region').mean().sort_values(['AveragePrice'],ascending=False).plot(kind='bar', figsize=(15,5))

Кроме того, этот код будет перезаписывать df1 как субплот Matplotlib вместо обновления кадра данных.Дальнейшие вызовы df1 будут просто выводить тип (matplotlib.axes._subplots.AxesSubplot) вместо отображения кадра данных.

Чтобы обновить df1 с помощью сгруппированного и отсортированного кадра данных, вы должны сначала манипулировать данным кадром и сохранить его, затемграфик вызовов на обновленном кадре данных, как показано ниже:

# Manipulate the dataframe
df1 = df1.groupby('region').mean().sort_values(['AveragePrice'],ascending=False)

# Plot the results
df1.plot(kind='bar', figsize=(15,5))

Таким образом, дальнейшие вызовы df1 отобразят сгруппированный и отсортированный кадр данных, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...