如何在R中绘制散点图展示配对样本T1、T2的counts分布关联
问题解答
散点图适用性判断
完全适用。你要分析配对样本两个时间点counts的关联关系,散点图是最匹配需求的可视化方案:X轴映射T1 counts、Y轴映射对应配对样本T2 counts的呈现方式,可以直观展示每个样本两个时间点的数值对应关系,叠加趋势线后还能清晰体现两组数值的整体相关方向和相关强度。
R实现代码
# 加载依赖包,没有安装的话先运行 install.packages("tidyverse") library(tidyverse) # 构造示例数据,实际使用时替换为读入自己的文件即可,比如df <- read.table("你的数据路径", header = T) df <- data.frame( Sample = c("001_T1","001_T2","002_T1","002_T2","003_T1","003_T2","004_T1","004_T2","005_T1","005_T2"), Time = c("T1","T2","T1","T2","T1","T2","T1","T2","T1","T2"), counts = c("26,629,556","20,755,896","26,081,538","28,675,076","25,459,034","25,531,900","29,062,968","26,612,567","26,689,387","28,428,044") ) # 数据清洗与格式转换 df_clean <- df %>% mutate( # 去掉counts中的千分位逗号,转为数值格式 counts = as.numeric(gsub(",", "", counts)), # 提取样本唯一编号,匹配T1、T2的配对关系 sample_id = gsub("_T[12]$", "", Sample) ) %>% # 长表转宽表,每个样本对应一行T1、T2的counts值 pivot_wider(id_cols = sample_id, names_from = Time, values_from = counts) # 绘制散点图+趋势线 ggplot(df_clean, aes(x = T1, y = T2)) + # 散点配置 geom_point(size = 3, color = "#2c3e50") + # 线性趋势线配置,不需要置信区间可加se = FALSE参数 geom_smooth(method = "lm", color = "#e74c3c", fill = "#bdc3c7", alpha = 0.3) + # 参考对角线,方便对比单个样本T1、T2的数值高低 geom_abline(slope = 1, intercept = 0, linetype = "dashed", color = "#7f8c8d") + # 坐标轴与标题设置 labs( x = "T1组counts值", y = "T2组counts值", title = "配对样本T1与T2 counts值关联关系" ) + theme_bw()
额外说明
- 若样本量较大存在点重叠问题,可在
geom_point中添加alpha = 0.6参数调整点的透明度 - 若需要在图中展示相关系数与显著性,可安装加载ggpubr包后,在ggplot代码中添加
stat_cor(method = "pearson", label.x.npc = 0.1, label.y.npc = 0.9)
内容的提问来源于stack exchange,提问作者user3683485
相关产品推荐
相关产品推荐

