如何在Python的PCA分析散点图中为数据点添加样本标签
给PCA散点图添加样本名称标签的解决方案
已完成PCA分析并生成按target列着色的散点图,需要为每个数据点添加对应样本名称(数据框的索引)标签,可通过以下修改实现:
修改后的完整代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA # 读取数据 raw_data_frame = pd.read_table('/content/drive/MyDrive/BI/colab_input_output/16samples_vaf_df_forpca.csv', sep=",", header=0, index_col=0) # 数据标准化 data_scaler = StandardScaler() scaled_data_frame = data_scaler.fit_transform(raw_data_frame) # PCA降维 pca = PCA(n_components = 2) x_pca = pca.fit_transform(scaled_data_frame) # 绘制散点图 plt.figure(figsize=(10, 7)) plt.scatter(x_pca[:,0], x_pca[:,1], c=raw_data_frame['target'], cmap='viridis') plt.xlabel('First Principal Component') plt.ylabel('Second Principal Component') # 为每个数据点添加样本名称标签 for i, sample_name in enumerate(raw_data_frame.index): # 在散点右上方添加标签,偏移量可根据图表调整 plt.text(x_pca[i, 0] + 0.05, x_pca[i, 1] + 0.05, sample_name, fontsize=8) plt.show()
关键说明
- 通过
enumerate(raw_data_frame.index)遍历所有样本的名称和对应的下标 plt.text()函数负责在指定坐标位置添加文本标签,这里给坐标加了小偏移(+0.05),避免标签覆盖散点,偏移量可根据图表疏密程度调整- 调整
fontsize参数可以控制标签字体大小,防止文字重叠影响可读性
内容的提问来源于stack exchange,提问作者SG Kwon
相关产品推荐
相关产品推荐

