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"))
相关推荐
Highcharts.js2 天前
可视化图表之甘特图Gantt:原理、应用与实践指南
甘特图·数据可视化·highcharts·图表渲染
Highcharts.js2 天前
Highcharts大数据渲染模块Boost实战与参数最佳实践表
javascript·数据可视化·boost·highcharts·大数据渲染·加速配置·参数表
机器学习之心2 天前
分而治之:K-means 聚类 + LSTM 的多输出回归实战
lstm·kmeans·聚类·多输出回归
Highcharts.js2 天前
数据可视化避坑指南 ——开发中常见图表错误与修复方案
javascript·信息可视化·数据可视化·highcharts·数据可视化避坑·修复方案
SpikeKing2 天前
AIDD - SAbDab2 抗体感知聚类(Antibody-Perceived Clustering)
聚类·抗体·aidd·sabdab2·mmseqs
躺柒2 天前
读数据可视化03可视化分类
信息可视化·分类·数据挖掘·数据可视化·数据科学·可视化分析·科学可视化
不剪发的Tony老师3 天前
Dash:一款免费开源、本地优先的数据探索与可视化工具
数据分析·数据可视化·dash
躺柒3 天前
读数据可视化02数据科学的发展
信息可视化·数据分析·数据可视化·数据科学·大数据分析·图形展示
躺柒3 天前
读数据可视化01可视化简史
大数据·信息可视化·数据分析·数据可视化·视觉
慧都小妮子4 天前
仪器仪表工程中的数据可视化软件:高性能图表库的应用实践
信息可视化·数据可视化·仪器仪表·scichart·高性能图表