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

带ID与时间分组的多细胞指标DataFrame可视化方案咨询

解决数据转换与可视化问题

一、先搞定长格式转换(保留ID)

你之前用melt时只指定了Time作为标识变量,所以丢了ID。把ID和Time一起加入id.vars就能保留所有关键信息:

方法1:用reshape2包的melt

library(reshape2)
df_long <- melt(cells, id.vars = c("ID", "Time(min)"), 
                variable.name = "Cell", value.name = "Value")

方法2:用tidyr包的pivot_longer(更推荐,tidyverse风格)

library(tidyr)
df_long <- cells %>% 
  pivot_longer(cols = starts_with("Cell"),  # 匹配所有Cell开头的列
               names_to = "Cell", 
               values_to = "Value")

转换后的数据会有ID、Time(min)、Cell、Value四个变量,完全满足后续分组可视化的需求。

另外你之前写的inmune %>% group_by(PID, Time)应该是笔误,原数据列名是ID和Time(min),而且单纯分组不做后续聚合/处理的话,对可视化帮助不大,转长格式才是核心步骤。

二、适合的可视化方案

1. 分面折线图(最直观的趋势展示)

按样本ID分面,每个面里用不同颜色区分细胞类型,清晰展示单个样本各细胞随时间的变化:

library(ggplot2)
ggplot(df_long, aes(x = `Time(min)`, y = Value, color = Cell)) +
  geom_line(linewidth = 1) +  # 线条加粗更清晰
  geom_point(size = 2) +      # 加上数据点突出时间点
  facet_wrap(~ID) +           # 按ID分面
  labs(x = "时间(分钟)", y = "数值", color = "细胞类型") +
  theme_bw() +
  theme(legend.position = "bottom")  # 图例放底部避免遮挡

2. 按细胞类型分面(跨样本对比)

如果想对比不同样本同一细胞的变化趋势,把分面维度换成Cell:

ggplot(df_long, aes(x = `Time(min)`, y = Value, color = ID)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  facet_wrap(~Cell) +
  labs(x = "时间(分钟)", y = "数值", color = "样本ID") +
  theme_bw()

3. 热图(全局数值分布一览)

适合快速查看所有样本、细胞、时间点的数值高低,用颜色映射数值:

ggplot(df_long, aes(x = Cell, y = interaction(ID, `Time(min)`), fill = Value)) +
  geom_tile(color = "white") +  # 白色边框区分单元格
  scale_fill_viridis_c(option = "plasma") +  # 配色更友好
  labs(x = "细胞类型", y = "样本-时间", fill = "数值") +
  theme(axis.text.y = element_text(size = 8),  # 缩小y轴文字避免重叠
        axis.text.x = element_text(angle = 45, hjust = 1))  # x轴文字倾斜

4. 脊线图(分布趋势对比)

如果想观察不同时间点各细胞的数值分布差异,用脊线图更直观(需要先安装ggridges包):

library(ggridges)
ggplot(df_long, aes(x = Value, y = Cell, fill = ID)) +
  geom_density_ridges(alpha = 0.6, scale = 0.9) +  # 半透明+调整间距
  facet_wrap(~`Time(min)`) +
  labs(x = "数值", y = "细胞类型", fill = "样本ID") +
  theme_ridges()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:00:58