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

R语言FactoExtra包fviz_pca双分组映射与图例自定义方法

报错原因

你遇到的报错是因为fviz_pca_biplot的pointshape参数仅支持传入单个值设置统一的散点形状,不支持直接传入分组向量做美学映射,因此触发了长度不匹配的错误。

解决代码

你可以通过内置参数直接映射分组,再搭配ggplot的图例修改功能实现需求,完整可运行代码如下:

library(factoextra)
library(FactoMineR)

# 计算PCA
res.pca <- PCA(Iris[,1:4], graph = F)

# 绘制双标图,同时映射颜色和形状
fviz_pca_biplot(res.pca,
                # 个体点配置
                geom.ind = "point",
                col.ind = Iris$Species, # 颜色映射到Species变量
                shape.ind = Iris$Site, # 形状映射到Site变量
                # 变量箭头配置
                col.var = "steelblue") +
  # 自定义两个图例的标题
  labs(color = "color", shape = "shape")

如果你的factoextra版本较低,shape.ind参数不生效,可以使用手动修改ggplot图层的兼容方案:

library(factoextra)
library(FactoMineR)
library(ggplot2)

res.pca <- PCA(Iris[,1:4], graph = F)

# 先绘制基础的颜色映射图
p <- fviz_pca_biplot(res.pca,
                geom.ind = "point",
                col.ind = Iris$Species,
                col.var = "steelblue")

# 移除默认的固定形状参数,新增形状映射
p$layers[[1]]$aes_params$shape <- NULL
p <- p + aes(shape = Iris$Site) +
  labs(color = "color", shape = "shape")

print(p)

以上两种方案都可以实现散点颜色映射物种、形状映射Site,同时自定义图例标题的需求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:48:00