You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的pandas柱状图柱子上方显示count数值

给柱状图柱子添加数值标签的解决方案

要给每个柱子上方显示对应的count数值,你可以在绘图后遍历所有柱子,用Matplotlib的文本标注功能添加数值。修改后的完整代码如下:

import pandas as pd
import matplotlib.pyplot as plt

my_data = {
    "source": ['Live','Twitter','Twitter','Telegram','Telegram'],
    "second_source":['Qa','Unspecified','Da','Hzo','Tolib'],
    "count":[7,1,1,1,1]
}
my_dataframe = pd.DataFrame(my_data)

# 按两列分组并求和
grouped_dataframe = my_dataframe.groupby(['source', 'second_source']).agg('sum')

# 绘制柱状图并获取轴对象
ax = grouped_dataframe.plot(kind='bar', figsize=(10,5))

# 遍历每个柱子,添加数值标签
for p in ax.patches:
    # 获取柱子的高度(即count值)
    height = p.get_height()
    # 在柱子中心上方添加文本
    ax.text(
        p.get_x() + p.get_width() / 2.,  # 文本的x坐标(柱子中心)
        height,  # 文本的y坐标(柱子顶部)
        str(height),  # 要显示的数值
        ha='center',  # 水平居中
        va='bottom'  # 垂直对齐方式,让文本在柱子顶部下方
    )

plt.xticks(rotation=40, ha='right')
plt.title("Sources")
plt.show()

关键代码说明

  • ax = grouped_dataframe.plot(...):获取绘图的轴对象,方便后续操作柱子元素
  • ax.patches:获取图表中所有的柱子对象
  • ax.text(...):在指定坐标位置添加文本,通过参数控制文本的对齐方式,确保数值在柱子正上方显示

内容的提问来源于stack exchange,提问作者maria bandoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 14:05:23