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

如何使用factoextra与ggplot2修改PCA图例条的范围?

自定义factoextra PCA双标图的图例条范围

要将图例条的范围手动设置为5到10,你可以利用fviz_pca_var返回ggplot对象的特性,通过添加ggplot的颜色刻度层来覆盖默认范围:

方法1:指定范围与渐变颜色

library(factoextra)

# 加载数据并执行PCA
data(decathlon2)
decathlon2.active <- decathlon2[1:23, 1:10]
res.pca <- prcomp(decathlon2.active, scale = TRUE)

# 绘制双标图并自定义图例范围
fviz_pca_var(res.pca,
             col.var = "contrib",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE) +
  scale_color_gradient(limits = c(5, 10),
                       low = "#00AFBB",
                       mid = "#E7B800",
                       high = "#FC4E07")

方法2:复用原渐变颜色向量

如果想直接复用代码中已有的gradient.cols颜色向量,更简洁的写法是:

fviz_pca_var(res.pca,
             col.var = "contrib",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE) +
  scale_color_gradientn(colors = c("#00AFBB", "#E7B800", "#FC4E07"),
                        limits = c(5, 10))

说明

  • 由于col.var = "contrib"是用颜色映射变量贡献值,因此需要使用scale_color_*系列函数(若涉及填充颜色则用scale_fill_*)。
  • limits = c(5,10)会强制将颜色映射的取值范围锁定在5到10之间,超出该范围的数值会被截断,显示为渐变的两端颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:30:20