python - 如何在 Matplotlib 中显示顶部和底部 5 行值以及自定义行值?
问题描述
我有一个大约 750 奇数行的数据框,这对于传统的条形图来说显然是多余的。我想做的是让它显示前 5 个条目、我正在寻找的特定标准和底部 5 个条目。
数据框是这样的:
Animal Score
0 Dog 1
1 Pig 2
2 Chicken 3
3 Cat 4
4 Fox 5
我想要做的是显示条形图,以便它选择前 5 个(其中 1 最高)条目(狗、猪、鸡、猫、狐狸),然后选择列表中的特定条目(甲虫)和然后是底部的 5 个条目(老虎、狮子、斑马、大猩猩、海马)以及这些条目的相应“分数”。
这甚至可能吗?
在此先感谢您的帮助!
更新:无论我修改了多少次 concat 字段,原始答案都在图表的右侧给了我额外的条目。也许是由于我的 df 中有 750 个条目?答: NaN 值给了我空白值,这就是原因。这些都是我考虑的。
解决方案
# Importing Dependencies
import pandas as pd
import matplotlib.pyplot as plt
# Creating DataFrame
data = {'Animal': ['Dog', 'Pig', 'Chicken','Cat','Fox','Hawk','Dolphin','Squirrel','Lizard','Shark','Ant','Beetle','Termite',
'Kangaroo','Opossum','Whale','Jellyfish','Seahorse','Gorilla','Zebra','Lion','Tiger'], 'Score': [_ for _ in range(23) if _ != 0]}
df = pd.DataFrame(data)
#Add custom entries here
custom_df = df.loc[df['Animal'].isin(['Beetle', 'Ant'])]
# Create new df
new_df = pd.concat([df[:5], df[-5:], custom_df])
new_df.sort_values(by=['Score'], inplace= True)
new_df.reset_index(drop=True, inplace= True)
# Creating the bar plot
plt.bar(new_df['Animal'], new_df['Score'])
plt.xticks(rotation=90)
plt.xlabel("Animals")
plt.ylabel("Score")
plt.show()
推荐阅读
- reactjs - React - 渲染按键事件
- android - 具有列表和多个条件的 Android 房间高级查询
- google-cloud-platform - 在构建 docker 镜像的同时运行构建和构建 docker 镜像
- java - 尽管在 Visual Studio 代码中链接了 java jar 文件,但仍然遇到链接器错误
- python - 如何将此 requests.post 转换为 locust 请求?
- webpack - 最简单的 cytoscape.js 构建系统?
- python - 在 macOS 上为 psutil 构建轮子失败
- html - CSS的编码不正确吗?
- php - 如何四舍五入 the_field PHP Wordpress
- visual-studio-code - 视觉工作室代码双击速度不使用操作系统设置