如何用Matplotlib/Seaborn切换轴标签并绘制正确的部门-数量柱状图
解决方法:用柱状图替代直方图实现需求
错误原因
你用错了图表类型:plt.hist()是直方图,作用是对数值型数据做分组频率统计,比如统计不同数量区间的部门个数,这和你要展示「每个部门对应具体数量」的需求完全不符。直接传入整个DataFrame还会因为参数类型不匹配报错。
你的数据属于「分类标签+对应数值」的结构,应该用**柱状图(Bar Plot)**来展示。
完整实现代码
第一步:读取数据
先正确读取CSV文件(跳过末尾多余的逗号):
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # 读取数据,指定有效列避免读取空列 deptgroups = pd.read_csv('datagroups.csv', usecols=['department', 'count'])
方法1:Matplotlib原生实现
# 绘制柱状图:x轴为部门名称,y轴为对应数量 plt.bar(x=deptgroups['department'], height=deptgroups['count']) # 设置轴标签与标题 plt.xlabel('部门名称') plt.ylabel('数量') plt.title('各部门数量统计') # 旋转x轴标签,避免长名称重叠 plt.xticks(rotation=45, ha='right') # 自动调整布局,防止标签被截断 plt.tight_layout() plt.show()
方法2:Seaborn简化实现
Seaborn的barplot可以直接关联DataFrame列名,代码更简洁:
# 绘制柱状图,直接指定x、y列名和数据源 sns.barplot(x='department', y='count', data=deptgroups) # 设置轴标签与标题 plt.xlabel('部门名称') plt.ylabel('数量') plt.title('各部门数量统计') # 优化x轴标签显示 plt.xticks(rotation=45, ha='right') plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者AFord_PandaBean
相关产品推荐
相关产品推荐

