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

如何在基于groupby()生成的折线图标记上方添加数值标签?

在Matplotlib折线图的标记上方添加数值标签

首先注意到你代码里的一个小问题:results数据框的列是depart和Mean,但绘图时x参数写的是Unit,这会导致报错,先把这个修正过来。

要给每个标记(marker)上方添加数值标签,你可以通过遍历数据点,使用plt.text()函数在每个点的位置上方写入对应的均值。具体实现如下:

import matplotlib.pyplot as plt

# 你的原代码(修正x轴参数)
results = df.groupby('depart')['Survey'].mean().to_frame(name='Mean').reset_index()

# 绘制折线图,获取返回的轴对象
ax = results.plot(x='depart', y='Mean', marker='o', figsize=(8,5))
plt.grid(True)
plt.ylim(3.60, 5.00)

# 遍历每个数据点,添加数值标签
for index, row in results.iterrows():
    # 在标记的上方(y值增加0.05)写入均值,保留两位小数
    ax.text(row['depart'], row['Mean'] + 0.05, f"{row['Mean']:.2f}", 
            ha='center', va='bottom')

plt.show()

关键部分说明:

  • ax.text()的前两个参数是标签的x、y坐标:x用row['depart']对应分类,y用row['Mean'] + 0.05让标签在标记上方一点,避免重叠。
  • f"{row['Mean']:.2f}"用来格式化数值,保留两位小数,让标签更整洁。
  • ha='center'设置水平居中,va='bottom'设置垂直对齐方式为底部,确保标签刚好在标记上方。

如果你的x轴是数值型而不是分类变量,用法是一样的,只需要对应替换x的取值即可。

内容的提问来源于stack exchange,提问作者kpop trash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:54:21