多对应分析(MCA)可视化优化:变量颜色调整与椭圆添加需求
多对应分析感知图优化方案
1. 将COURSES变量设置为黑色
假设你使用FactoMineR完成多对应分析,factoextra绘制感知图,可按以下步骤修改变量颜色:
首先完成MCA计算(根据你的数据集调整参数):
library(FactoMineR) library(factoextra) # 替换为你的实际数据集 mca_result <- MCA(your_dataset, graph = FALSE)
生成自定义颜色向量,单独将COURSES变量设为黑色:
# 获取所有变量名称 var_names <- rownames(mca_result$var$coord) # 生成默认调色板颜色 var_colors <- hcl.colors(length(var_names), "viridis") # 定位COURSES变量的位置并修改颜色 courses_pos <- which(var_names == "COURSES") var_colors[courses_pos] <- "black"
绘制带自定义颜色的感知图:
p <- fviz_mca_var(mca_result, col.var = var_colors, repel = TRUE, # 避免标签重叠 ggtheme = theme_minimal()) print(p)
2. 添加聚类椭圆
针对聚类相近的点添加椭圆,可先对变量/个体进行聚类,再将椭圆叠加到原图上:
方法1:基于K-Means聚类添加椭圆
# 对变量坐标进行K-Means聚类(可根据需求调整聚类数centers) var_cluster <- kmeans(mca_result$var$coord, centers = 3) # 将椭圆叠加到之前的感知图上 p + fviz_ellipses(mca_result, geom = "var", # 若为个体点则改为"ind" habillage = var_cluster$cluster, alpha = 0.2, # 椭圆透明度 col = "black", # 椭圆边框颜色 fill = scales::alpha(c("#FF5733", "#33FF57", "#3357FF"), 0.1)) # 填充色
方法2:基于层次聚类(HCPC)添加椭圆
如果需要更贴合的聚类结果,可使用HCPC函数:
# 对MCA结果进行层次聚类 res_hc <- HCPC(mca_result, graph = FALSE) # 添加聚类椭圆 p + fviz_ellipses(res_hc, geom = "var", alpha = 0.2, col = "darkgray", fill = scales::alpha("lightblue", 0.1))
内容的提问来源于stack exchange,提问作者Lucas Dos Santos Jambeiro
相关产品推荐
相关产品推荐

