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

如何用fviz_pca_biplot基于两组因子为Ind设置形状与颜色?

实现方法:用tr控制样本点形状,Treat控制颜色

完全可以实现,无需依赖填充色与描边色的区分方式,直接通过fviz_pca_biplot的参数分别绑定两个分组因子即可,步骤如下:

1. 加载依赖包与准备数据

library(FactoMineR)
library(factoextra)

# 构造与你数据集结构匹配的示例数据
set.seed(123)
df <- data.frame(
  Ind = paste0("Ind", 73:78),
  X1 = rnorm(6), X2 = rnorm(6), X3 = rnorm(6),
  X4 = rnorm(6), X5 = rnorm(6), X6 = rnorm(6),
  tr = factor(c("A", "A", "B", "B", "C", "C")),
  Treat = factor(c("Control", "Treat1", "Control", "Treat1", "Control", "Treat1"))
)

2. 执行PCA分析

# 仅对X1-X6变量做PCA,关闭默认绘图
pca_res <- PCA(df[, 2:7], scale.unit = TRUE, graph = FALSE)

3. 绘制双图:分别绑定形状与颜色分组

fviz_pca_biplot(pca_res,
                geom.ind = "point",  # 仅绘制样本点(保留标签可去掉此参数)
                shape.ind = df$tr,   # 用tr因子控制样本点形状
                col.ind = df$Treat,  # 用Treat因子控制样本点颜色
                col.var = "black",   # 设置变量箭头颜色为黑色
                repel = TRUE,        # 避免标签重叠
                shape = c(21, 22, 23)# 自定义tr各水平对应的形状(按需调整)
) +
  labs(shape = "tr分组", color = "Treat分组") +  # 自定义图例标题
  scale_color_manual(values = c("Control" = "#2E86AB", "Treat1" = "#D81E5B"))  # 自定义Treat分组颜色

关键参数说明

  • shape.ind:直接绑定tr因子,自动为不同水平分配形状;若需要更易区分的形状,用shape参数指定具体的pch代码(比如21=填充圆、22=填充正方形、23=填充三角形)。
  • col.ind:绑定Treat因子,自动为不同水平分配颜色;通过scale_color_manual可自定义颜色方案,提升辨识度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:20:16