如何使用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
相关产品推荐
相关产品推荐

