今天要说的是肿瘤治疗领域常用的瀑布图,不是生物信息学领域的瀑布图。
瀑布图和泳道图经常一起出现,泳道图的绘制请看历史推文:
用ggplot2画肿瘤领域常见的泳道图 ggplot2画泳道图箭头如何显示
瀑布图可以展示同一个药物治疗不同组别患者之间的治疗效果。
肿瘤领域的瀑布图
其实就是普通的条形图。
首先我们虚构一个数据:
代码语言:javascript复制suppressMessages(library(tidyverse))
set.seed(1111)
df <- data.frame(id = 1:60,
group = sample(c("group1","group2","group3","group4"),60,replace = T),
size = sample(c(-10:-1,1:10),60,replace = T)
)
df$id <- factor(df$id)
str(df)
## 'data.frame': 60 obs. of 3 variables:
## $ id : Factor w/ 60 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ group: chr "group4" "group2" "group2" "group2" ...
## $ size : int 7 5 -3 -7 -2 2 10 3 -9 2 ...
head(df)
## id group size
## 1 1 group4 7
## 2 2 group2 5
## 3 3 group2 -3
## 4 4 group2 -7
## 5 5 group4 -2
## 6 6 group1 2
一共3列,第一列是病人编号,第二列是所属组别,比如常见的突变组/未突变组,CP/PR/PD/SD组等等,还有一列是肿瘤变化大小。
如果你需要展示更多的信息,只要再增加列即可。
直接用ggplot2
画图即可:
ggplot(df, aes(fct_reorder(id, size), size))
geom_bar(stat = "identity", aes(fill=group))
scale_x_discrete(name=NULL,labels=NULL)
labs(y="Change from baseling (cm)")
geom_hline(yintercept = 3,linetype=2,color="red")
theme_classic()
theme(axis.line.x = element_blank(),
axis.title.y = element_text(size = 18,color="black"),
axis.ticks.x = element_blank(),
axis.text.y = element_text(size = 14,color = "black"),
legend.direction = "horizontal",
legend.position = c(0.7,0.1)
)
plot of chunk unnamed-chunk-2
这个图由于数据问题,并不能看出什么效果,不过画一个瀑布图就是这么简单!