如何在R中绘制样本间基因表达水平散点图(样本A vs 样本B)
两样本基因表达散点图绘制方案(ggplot2实现)
嘿,这个图咱们一般叫两样本基因表达散点图,主要用来可视化两个样本间基因表达的相关性或差异,用你熟悉的ggplot2就能轻松搞定,结合你的示例数据,我给你写了完整的实现代码:
基础版散点图
首先确保加载ggplot2包,然后直接用你的数据框绘图:
# 加载ggplot2包 library(ggplot2) # 你的示例数据 sample_A <- c(2, 3, 1) sample_B <- c(-1, 4, -3) genes <- c("gene1", "gene2", "gene3") df <- data.frame(sample_A, sample_B, row.names = genes) # 绘制基础散点图 ggplot(df, aes(x = sample_B, y = sample_A)) + geom_point(size = 2, color = "#2c3e50") + # 设置点的大小和颜色,深色更清晰 labs( title = "基因表达散点图(样本A vs 样本B)", x = "样本B的基因表达量", y = "样本A的基因表达量" ) + theme_minimal() + # 选用简洁清爽的主题 theme( plot.title = element_text(hjust = 0.5, size = 14, face = "bold"), # 标题居中、加粗 axis.title.x = element_text(size = 12), axis.title.y = element_text(size = 12) )
进阶优化:添加基因标注
如果需要直观看到每个点对应的基因名称,可以加上文本标注:
ggplot(df, aes(x = sample_B, y = sample_A, label = rownames(df))) + geom_point(size = 2, color = "#2c3e50") + geom_text(hjust = 0.5, vjust = -1, size = 3.5) + # 标注在点的上方,避免遮挡 labs( title = "带基因标注的表达散点图", x = "样本B的基因表达量", y = "样本A的基因表达量" ) + theme_minimal()
进阶优化:添加相关性拟合线
如果想展示两个样本的表达相关性,可以添加线性拟合线和置信区间:
ggplot(df, aes(x = sample_B, y = sample_A)) + geom_point(size = 2, color = "#2c3e50") + geom_smooth(method = "lm", se = TRUE, color = "#e74c3c") + # 线性拟合+95%置信区间,红色突出线条 labs( title = "基因表达相关性散点图", x = "样本B的基因表达量", y = "样本A的基因表达量" ) + theme_minimal()
针对你原始数据集的说明
你提到原始数据是每行一个基因、每列一个样本的结构,只需要提取sample_A和sample_B这两列即可,不需要调整数据结构——ggplot2可以直接用这两列作为x轴和y轴的映射,和示例代码的逻辑完全一致。
内容的提问来源于stack exchange,提问作者arvchi
相关产品推荐
相关产品推荐

