如何在R中绘制PCA前后相关性系数的散点图以展示提升效果
绘制PCA去噪前后相关性系数的散点图方案
数据准备与包加载
首先加载绘图所需的ggplot2包,并导入数据集,同时将行名转为单独的基因名列,方便后续标注:
library(ggplot2) # 导入数据集 data <- structure(list(rho_before = c(0.4307495, 0.5960163, 0.5493751, 0.490663, 0.5255558, 0.4066614, 0.3735131, 0.4254657, 0.3644662, 0.1835266), rho_pca = c(0.4891171, 0.5352205, 0.6741458, 0.607399, 0.6842696, 0.4207939, 0.4573174, 0.6284339, 0.7400641, 0.3667239 )), class = "data.frame", row.names = c("gene1", "gene2", "gene3", "gene4", "gene5", "gene6", "gene7", "gene8", "gene9", "gene10" )) # 将行名转为基因名列 data$gene <- rownames(data)
绘制散点图
使用ggplot2绘制散点图,添加45度参考线(代表PCA前后相关性无变化),并标注每个基因的名称:
ggplot(data, aes(x = rho_before, y = rho_pca)) + # 添加45度虚线参考线 geom_abline(slope = 1, intercept = 0, color = "gray50", linetype = "dashed") + # 绘制散点,用蓝色突出所有PCA后相关性提升的基因 geom_point(color = "#2E86AB", size = 3) + # 添加基因名称标签,避免重叠 geom_text(aes(label = gene), hjust = -0.1, vjust = 0.1, size = 3.5) + # 设置坐标轴与标题 labs(x = "PCA去噪前相关性系数(rho)", y = "PCA去噪后相关性系数(rho)", title = "PCA去噪前后基因相关性系数对比") + # 调整坐标轴范围,确保参考线完整展示 xlim(c(0.15, 0.8)) + ylim(c(0.15, 0.8)) + # 应用简洁主题 theme_minimal() + theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), axis.title = element_text(size = 12))
结果说明
- 图中虚线为45度参考线,所有位于线上方的点都代表该基因经PCA去噪后相关性系数高于去噪前,你的10个基因全部满足这一条件。
- 每个点旁标注了对应的基因名称,可直观查看单个基因的相关性变化幅度。
内容的提问来源于stack exchange,提问作者Rhea Bedi
相关产品推荐
相关产品推荐

