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"))
相关推荐
再一次等风来20 小时前
聚类入门:从基本原理到工程应用
机器学习·聚类
山海鲸可视化21 小时前
【山海鲸功能演示】如何设置选中按钮的时候其他按钮切换为默认样式?
webgl·可视化·数据可视化·数据表格·搜索框
山海鲸实战案例分享1 天前
【数字孪生实战案例】怎样点击命名后的项目组件,就能自动跳转至对应网页链接?~山海鲸可视化
数字孪生·数据可视化·零代码·实战案例·山海鲸可视化·跳转链接·基础单行文本
weixin_505154461 天前
打破传统界限:Bowell Studio引领3D作业指导新纪元
人工智能·3d·制造·数据安全·数字孪生·数据可视化
王霸天2 天前
🚨 还在用 rem) 做大屏适配?用 vfit.js 一键搞定,告别改稿8版的噩梦!
前端·vue.js·数据可视化
Highcharts.js2 天前
经验值|React 实时数据图表性能为什么会越来越卡?
前端·javascript·react.js·数据可视化·实时数据
程序员Shawn3 天前
【机器学习 | 第七篇】- 聚类算法
算法·机器学习·聚类
杨超越luckly3 天前
HTML应用指南:利用GET请求获取中国生活垃圾焚烧发电厂位置信息
python·arcgis·html·数据可视化·生活垃圾焚烧发电厂
cskywit4 天前
打破“像素级”扫描瓶颈:聚类驱动的4K图像恢复新范式 (解读 Scan Clusters, Not Pixels)
机器学习·数据挖掘·聚类
柳杉5 天前
Three.js × Blender:从建模到 Web 3D 的完整工作流深度解析
前端·javascript·数据可视化