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

如何在UMAP散点图中添加/替换为字符串类型的pid标签

给UMAP散点图添加pid文本标签的解决方案

可以用Matplotlib手动绘制UMAP结果并添加文本标签,替换原有的umap.plot.points方法,就能明确显示每个点对应的pid字符串:

实现代码

import umap
import matplotlib.pyplot as plt

# 训练UMAP模型,注意保留原数据的pid列
mapper = umap.UMAP(n_neighbors=5, metric='hamming').fit(data.drop('pid', axis=1))
# 获取UMAP降维后的二维坐标
umap_coords = mapper.embedding_

# 创建绘图对象
fig, ax = plt.subplots(figsize=(10, 8))

# 可选:保留原有彩色聚类标记的话,先绘制彩色散点
ax.scatter(umap_coords[:, 0], umap_coords[:, 1], c=np.array(clusters['leaves_color_list']), s=50, alpha=0.6)

# 遍历每个点,添加对应的pid文本标签
for idx, (x, y) in enumerate(umap_coords):
    pid_label = data['pid'].iloc[idx]
    ax.text(x, y, pid_label, fontsize=8, ha='center', va='center')

# 设置图表标题与坐标轴标签
ax.set_title('UMAP散点图(带pid标签)')
ax.set_xlabel('UMAP 第一维度')
ax.set_ylabel('UMAP 第二维度')

plt.show()

关键说明

  • 通过mapper.embedding_可获取UMAP降维后的坐标数据,这是模型训练完成后输出的核心结果
  • 若不需要原有彩色散点,直接删除ax.scatter代码行,仅保留文本标签即可
  • 调整fontsize(字体大小)、s(散点尺寸)、alpha(透明度)等参数,能优化标签可读性,减少重叠问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:15:27