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

PCA实操问询:如何为样本分布图替换季节名称(替代数字标识)

修改PCA样本分布图以显示季节名称的解决方案

我来帮你调整代码,让PCA样本图显示数据里的季节名称而非数字~核心是修改fviz_pca_ind的参数,同时优化代码避免潜在问题:

完整修改后的代码

# 读取数据,明确指定header和sep参数(更严谨)
mydata <- read.csv("IRI_diet.csv", header = TRUE, sep = ",")

# 将NA值替换为0
mydata[is.na(mydata)] <- 0

# 提取用于PCA分析的生物类群列(避免使用attach,直接用mydata$引用更安全)
X <- cbind(
  mydata$Annelida, 
  mydata$Decapoda, 
  mydata$Gastropoda, 
  mydata$Isopoda, 
  mydata$Pisces
)
# 为X设置列名,让后续分析输出更清晰
colnames(X) <- c("Annelida", "Decapoda", "Gastropoda", "Isopoda", "Pisces")

# 数据摘要与相关性分析
summary(X)
cor(X)

# 执行PCA分析(保留scores,使用相关矩阵)
res.pca <- prcomp(X, scores = TRUE, cor = TRUE)
summary(res.pca)

# 绘制PCA样本图,替换为季节名称
fviz_pca_ind(res.pca, 
             col.ind = mydata$Season,  # 按季节分组着色
             labels = mydata$Season,   # 将样本标签替换为季节名称
             legend.title = "Season",  # 设置图例标题
             repel = TRUE,             # 防止标签重叠,提升可读性
             title = "PCA of Diet Composition by Season"  # 自定义图标题(可选)
             )

关键修改说明

  • 移除attach(mydata):attach容易导致变量名冲突,改用mydata$直接引用列更稳妥
  • 替换样本标签:通过labels = mydata$Season,把默认的数字样本标签换成数据第一列的季节名称
  • 按季节分组着色:col.ind = mydata$Season让不同季节的样本显示不同颜色,配合图例更易区分
  • 优化可读性:添加repel = TRUE自动调整标签位置,避免重叠问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:35