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

如何为Seaborn散点图添加DataFrame中的数据标签?

给Seaborn散点图数据点添加自定义标签的解决方案

我来帮你搞定这个问题!你遇到的核心问题是seaborn.lmplot返回的是FacetGrid对象,不是普通的Matplotlib轴(Axes),所以直接用fig, ax = plt.subplots()是拿不到散点图对应的轴的。下面是几种可行的实现方式:

方法一:基于lmplot添加单个列标签(比如A列)

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 生成示例数据
df_so = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

# 绘制散点图,获取FacetGrid对象
scatter_so = sns.lmplot(x='C', y='D', data=df_so, fit_reg=False, y_jitter=0, scatter_kws={'alpha':0.2})

# 从FacetGrid中提取对应的Axes对象
ax = scatter_so.axes[0, 0]

# 循环遍历每一行数据,添加A列作为标签
for idx, row in df_so.iterrows():
    # 给标签设置轻微偏移,避免和散点重叠
    ax.text(row['C'] + 1, row['D'] + 1, str(row['A']), 
            fontsize=8, alpha=0.7)

plt.show()

方法二:同时添加A和B列的标签

如果需要同时显示多列信息,可以把标签内容拼接或换行展示:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df_so = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
scatter_so = sns.lmplot(x='C', y='D', data=df_so, fit_reg=False, y_jitter=0, scatter_kws={'alpha':0.2})
ax = scatter_so.axes[0, 0]

# 组合A和B列的内容作为标签,用换行分隔
for idx, row in df_so.iterrows():
    label_content = f"A:{row['A']}\nB:{row['B']}"
    ax.text(row['C'] + 1, row['D'] + 1, label_content, 
            fontsize=7, alpha=0.7)

plt.show()

简化方案:用scatterplot替代lmplot

如果你不需要lmplot的回归拟合功能,直接用sns.scatterplot会更简洁,因为它直接返回Axes对象:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df_so = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

# 直接创建Axes并绘制散点图
fig, ax = plt.subplots()
sns.scatterplot(x='C', y='D', data=df_so, alpha=0.2, ax=ax)

# 添加标签
for idx, row in df_so.iterrows():
    ax.text(row['C'] + 1, row['D'] + 1, str(row['A']), 
            fontsize=8, alpha=0.7)

plt.show()

小提示

  • 可以调整row['C'] + 1和row['D'] + 1中的数值,来改变标签相对于散点的偏移位置,避免遮挡。
  • 如果数据点过多导致标签重叠,可以尝试缩小字体、降低透明度,或者只给特定条件的点添加标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:16:28