You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ggplot2绘制相关性散点图时如何为不同分组点设置指定颜色

需求说明

绘制相关性散点图时需为三类数据点配置差异化颜色:

  • 正常细胞系:黑色
  • 癌细胞系:红色
  • 肿瘤样本:蓝色

目前已完成ggplot基础框架搭建与数据点标注,因每个细胞系有专属名称,无法通过dplyr或Excel完成批量数据分组;曾尝试将数据拆分为多个独立数据框,分别调用geom_point为对应子集指定颜色,但方法未生效。

原有代码
#create master frame
df <- my_file
names <- rownames(df)
df <- as.data.frame(df)
class(df)
normals <- df[1:21]
cell_lines <- df[22:60]
tumors <- df[61:219]
row.names(df) <- c("PTPRO", "PPP1R14C", "IRF8", "TSPAN8","NKD1")
#create new data frame for 2 specific sets
row_to_keep <- c(TRUE,TRUE,FALSE,FALSE,FALSE)
df1 <- df[row_to_keep,]
# create scatter plot
df1=data.frame(t(df)) #switch rows and columns
ggplot(df1,aes(x=PTPRO,y=PPP1R14C))+
  geom_point() + #scatter plot
  coord_trans(y='log10',x='log10') + #logarithmic scale
  geom_text( #label names
    label=rownames(df1),
    nudge_x=0.25,nudge_y=0.25,
    check_overlap=T,
  )
当前效果

当前生成的未分组散点图

预期实现按三类样本分组着色的散点图,保留原有对数坐标轴、样本名标注设置。

问题原因与修正方案

之前拆分数据框调用geom_point不生效,是因为拆分操作在转置前执行:转置前数据行是基因、列是样本,按列拆分出的子集在转置后维度、映射关系完全错乱,无法正常叠加图层。
不需要拆分多个数据框,直接在转置后的样本行数据中新增分组列,将颜色映射到分组变量即可,修正后代码如下:

library(ggplot2)
# 读取并处理基础数据
df <- my_file
df <- as.data.frame(df)
rownames(df) <- c("PTPRO", "PPP1R14C", "IRF8", "TSPAN8","NKD1")

# 提取目标基因数据,转置为样本为行、基因为列的绘图格式
df1 <- as.data.frame(t(df[c("PTPRO", "PPP1R14C"), ]))

# 按样本位置直接新增分组标签,无需手动逐个标注
df1$sample_group <- c(
  rep("正常细胞系", 21),
  rep("癌细胞系", 39), # 对应22-60共39个样本
  rep("肿瘤样本", nrow(df1) - 60) # 对应61行及之后的所有样本
)

# 绘制分组散点图
ggplot(df1, aes(x = PTPRO, y = PPP1R14C, color = sample_group)) +
  geom_point(size = 2) +
  coord_trans(y = "log10", x = "log10") +
  # 手动指定三类样本对应的颜色
  scale_color_manual(
    values = c(
      "正常细胞系" = "black",
      "癌细胞系" = "red",
      "肿瘤样本" = "blue"
    )
  ) +
  geom_text(
    aes(label = rownames(df1)),
    nudge_x = 0.25,
    nudge_y = 0.25,
    check_overlap = TRUE,
    show.legend = FALSE
  ) +
  labs(color = "样本类型") +
  theme_bw()

注意:如果样本顺序有调整,只需要修改rep()函数内的样本数即可,不需要改动其他绘图逻辑。

内容的提问来源于stack exchange,提问作者eclecticintrovert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:45:40