要在可视化的柱状图上添加每个柱子的标签,以显示它们代表的职位类别,可以使用 matplotlib
的 text
方法在每个柱子上方添加文本标签。以下是更新后的示例代码:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 读取各职位类别的 CSV 文件
xinmeiti_df = pd.read_csv('xinmeiti_yunying.csv')
kefu_df = pd.read_csv('kefu.csv')
dianshang_df = pd.read_csv('dianshang_yunying.csv')
# 为每个数据框添加职位类别列
xinmeiti_df['职位类别'] = '新媒体运营'
kefu_df['职位类别'] = '客服'
dianshang_df['职位类别'] = '电商运营'
# 合并所有数据框
all_data = pd.concat([xinmeiti_df, kefu_df, dianshang_df], ignore_index=True)
# 统计各职位类别的数量
category_counts = all_data['职位类别'].value_counts()
# 可视化
plt.figure(figsize=(10, 6))
bar_plot = sns.barplot(x=category_counts.index, y=category_counts.values, palette='viridis')
plt.title('重庆地区各职位类别数量分布')
plt.xlabel('职位类别')
plt.ylabel('数量')
plt.xticks(rotation=45)
# 在每个柱子上添加标签
for p in bar_plot.patches:
bar_plot.annotate(f'{int(p.get_height())}',
(p.get_x() + p.get_width() / 2., p.get_height()),
ha='center', va='bottom',
fontsize=10, color='black',
xytext=(0, 5), # 向上偏移5个单位
textcoords='offset points')
plt.tight_layout()
# 显示图形
plt.show()
for
循环遍历每个柱子(bar_plot.patches
),并使用 annotate
方法在每个柱子上方添加文本标签。f'{int(p.get_height())}'
:获取柱子的高度并转换为整数,以显示数量。(p.get_x() + p.get_width() / 2., p.get_height())
:确定文本标签的位置,位于柱子的顶部中心。ha='center'
和 va='bottom'
:设置文本的水平和垂直对齐方式。xytext=(0, 5)
:将文本向上偏移5个单位,以避免与柱子重叠。运行更新后的代码后,柱状图上将显示每个职位类别的数量,便于更直观地理解数据分布。