首页 > 解决方案 > 对已按降序分组的条形图值进行排序

问题描述

我遇到了一个问题,我无法让我的条形图以按区域分组的列的降序显示。

我试图对这些值进行排序,然后分组并绘制在条形图上。

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))

该图仍按区域按字母顺序绘制值。 在此处输入图像描述

标签: pythonpandasdataframe

解决方案


首先对值进行分组,然后排序并更改ascending=TrueFalse

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

此外,该代码将覆盖df1为 Matplotlib 子图,而不是更新数据框。进一步调用df1将只输出类型 ( matplotlib.axes._subplots.AxesSubplot) 而不是显示数据框。

df1使用分组和排序的数据框进行更新,您应该首先操作数据框并保存它,然后在更新的数据框上调用 plot ,如下所示:

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

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

这样,进一步调用df1将按预期显示分组和排序的数据帧。


推荐阅读