使用autoplot绘制PCA图时,如何为每个数据点添加样本代号?
在autoplot的PCA图中添加样本代号的解决方法
autoplot默认的labels=TRUE只会显示数据行的索引数字,要显示原始数据中的样本代号,你可以利用autoplot返回ggplot对象的特性,直接叠加geom_text图层来实现,具体步骤如下:
步骤1:确保数据包含样本代号列
如果你的原始数据还没有样本代号,先新增一列(以iris数据集为例):
iris$SampleID <- paste0("Sample_", 1:nrow(iris))
如果你的数据已经有现成的样本名称列,直接用该列即可。
步骤2:绘制PCA图并叠加样本代号
修改你的代码,在autoplot后添加geom_text层,指定标签为样本代号列:
library(ggfortify) df <- iris[1:4] pca_res <- prcomp(df, scale. = TRUE) autoplot(pca_res, data = iris, colour = 'Species', loadings = TRUE, loadings.colour = 'blue', loadings.label = TRUE, loadings.label.size = 3, frame = TRUE, frame.type = 'norm') + geom_text(aes(label = SampleID), size = 2.5, hjust = 0.5, vjust = -1)
参数说明
label = SampleID:替换成你数据中的样本代号列名size:控制文字大小,避免遮挡数据点hjust/vjust:调整文字相对于数据点的位置,vjust = -1表示将文字放在点的上方
内容的提问来源于stack exchange,提问作者stakrawolf
相关产品推荐
相关产品推荐

