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

如何在Seaborn散点图的数据点左上方添加人名标签?

解决散点图添加数据点人名标注的问题

数据集结构

PeopleHeightweight
Neil18690
Olaf18760
Jake18875
Mitt18977
Gaby18162
Sam18065

原代码问题

原代码存在两处问题:

  • 未定义变量g,调用g.set()会触发报错,应使用创建好的ax对象设置坐标轴标签
  • 缺少给每个散点添加人名标注的逻辑

可行解决方案

通过遍历数据集的每一行数据,使用ax.text()在每个数据点的左上方添加对应人名。调整文本的坐标偏移量,保证标注位置合理且不遮挡数据点。

完整代码如下:

import matplotlib.pyplot as plt
import seaborn as sns

_, ax = plt.subplots(figsize=(5,5))
# 绘制散点图
sns.scatterplot(x=df['Height'], y=df['weight'], ax=ax) 
# 设置坐标轴标签
ax.set(xlabel='height', ylabel='weight')
# 添加图表标题
plt.title("relationship between height and weight")

# 遍历数据,为每个点添加人名标注
for idx, row in df.iterrows():
    # 偏移坐标,让标注显示在数据点左上方
    ax.text(row['Height'] - 1, row['weight'] + 1, row['People'])

plt.show()

代码说明

  • 用df.iterrows()遍历每行数据,提取每个人的身高、体重和名字信息
  • ax.text()的前两个参数为标注坐标,通过对原始坐标做微小偏移(row['Height'] -1和row['weight'] +1),确保标注位于数据点左上方
  • 将原代码的g.set()替换为ax.set(),匹配当前绘图使用的ax对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:45:28