ggplot2 | line plot 分组及均值线:聚类后的表达变化趋势图

1. 效果图

2. 预处理及绘图

复制代码
# 输入数据
> head(dat)
  Species cid     variable value
1  setosa   1 Sepal.Length   5.1
2  setosa   2 Sepal.Length   4.9
3  setosa   3 Sepal.Length   4.7
4  setosa   4 Sepal.Length   4.6
5  setosa   5 Sepal.Length   5.0
6  setosa   6 Sepal.Length   5.4


# 预处理及绘图
row.num=nrow(iris)
dat=iris[1:row.num,] #假设有4个时间点,最后一列是聚类结果
dat$cid=rownames(dat) #很重要!用于 ggplot 的 group
head(dat)
#宽变长
dat = tidyr::gather(data = dat, key = "variable", value = "value", -c(Species, cid))
# or: 宽变长
#dat=reshape2::melt(dat)

# 限定x轴顺序
dat$variable=factor(dat$variable, levels = c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width'))
head(dat)
dim(dat)
ggplot(dat, aes(x=variable, y=value, group=cid, color=Species))+
  geom_hline(yintercept =4, linetype=2, size=0.5) +
  geom_line(size=0.3)+
  stat_summary(aes(group=1),fun.y=mean, geom="line", size=0.8, color="black")+
  facet_wrap(Species~.)+
  labs(x="Stage", y='Expression')+
  theme_bw()+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        axis.text = element_text(size=8, face = "bold"),
        axis.text.x=element_text(angle=60, hjust=1),
        strip.background = element_rect(fill="white"),
        strip.text = element_text(size = 8, face = "bold"))
相关推荐
代码骑士1 天前
聚类(Clustering)基础知识2
机器学习·数据挖掘·聚类
大刘讲IT2 天前
制造业数字化转型:流程改造先行还是系统固化数据?基于以MTO和MTS的投资回报分析
运维·经验分享·生活·产品经理·数据可视化
dundunmm2 天前
【论文阅读】Self-Correcting Clustering
论文阅读·深度学习·数据挖掘·聚类
玄魂3 天前
基于Vue框架的开源大屏项目实践
前端·开源·数据可视化
Mapmost3 天前
【数据融合实战手册·技术篇】地理空间数据各说各话?坐标转换出手搞定!
gis·数据可视化
十三画者3 天前
【工具】BioPred一个用于精准医疗中生物标志物分析的 R 软件包
数据挖掘·数据分析·r语言·数据可视化
永洪科技4 天前
服装零售行业数据分析方案
大数据·数据挖掘·数据分析·数据可视化·零售·bi
风暴之零4 天前
使用大语言模型进行Python图表可视化
人工智能·python·语言模型·数据可视化
Fuction.5 天前
聚类注意点
人工智能·python·机器学习·kmeans·聚类
穆易青5 天前
2025.03.26【基因数据解析】| BackSPIN:高效基因聚类与过滤工具详解
机器学习·数据挖掘·聚类·clustering·genefiltering