python - 如何按物种总数对该条形图进行排序?
问题描述
上面是我使用创建的图表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()
解决方案
您正在按“关注的物种”值对数据框进行排序。您应该添加另一个表示物种总数的列,然后按该值排序。在绘图时,您可以隐藏该列。
推荐阅读
- reactjs - React Native 应用程序中的未知 HTTP GET 请求
- cocoa - 如何在没有动画的情况下滚动RowToVisible
- android - 如何使用 volley 在 android 中解析以“/”开头的 Json?
- java - 在 Java 8 中将 POJO 转换为 Tree 结构,以便在层次结构中表示数据
- r - 在旭日形中定位标签和颜色编码 - R
- android - 如何使用 android 布局中的工具来替换设计器的合并项
- java - 状态栏什么时候隐藏?
- hybrid-mobile-app - 将 www 文件夹从一个项目复制粘贴到另一个项目无法正常工作
- asp.net - 如何将提交的电子邮件发送到电子邮件
- javascript - 如何在 Odoo 10 的 javascript 中读取 QWeb 变量?