首页 > 解决方案 > 如何按物种总数对该条形图进行排序?

问题描述

条形图

上面是我使用创建的图表DataFrame.plot。但是,这并不是我想要的顺序。它应该根据物种总数降序排列。这是我为创建它而编写的代码。

## Group data by park_name and conservation status
cons_park = park_species.groupby(['park_name', 'conservation_status']).scientific_name.count().reset_index()
pivoted_cons_park = pd.pivot_table(
    data=cons_park, index='park_name',
    columns='conservation_status',
    values='scientific_name'
)

## Sort data based on conservation status - Changing this one will result in a different chart
pivoted_cons_park.sort_values(by='Species of Concern', inplace=True)

## Plot a bar chart to visualize the data
pivoted_cons_park.plot(kind='barh', stacked=True, figsize=(10,10))
plt.legend(bbox_to_anchor=(1.02, 1.01))
plt.title('Species in Conservation in US National Parks', weight='bold')
plt.ylabel('Park', fontsize=12)
plt.xlabel('Number of species', fontsize=12)
plt.show()
plt.clf()

标签: pythonpandas

解决方案


您正在按“关注的物种”值对数据框进行排序。您应该添加另一个表示物种总数的列,然后按该值排序。在绘图时,您可以隐藏该列。


推荐阅读