生信绘图小技巧 | 多组小提琴柱状组合图绘制
昨天,我们分享了跟着NC学作图 | 差异比较小提琴+柱状组合图的教程。这是单个图形的教程,如果是多个类似的图形,我们需要绘制呢?
对于这个问题,我们很多同学首先想到的就是“拼图”,这也是我的首先想到的。
使用plot_grid()
函数进行拼图
拼图的方式很多,我一直都是使用plot_grid()
进行拼图,我个人认为这是很简单的方法。
plot_grid()操作
### 数据
head(df)
CCLE_ID all_pseudotime emt_score target_tissue CI.05 CI.95
1 22RV1_PROSTATE 49.27840 -1.104890 brain -3.824015 -2.976779
2 22RV1_PROSTATE 49.27840 -1.104890 lung -3.824015 -2.721612
3 22RV1_PROSTATE 49.27840 -1.104890 bone -3.824015 -2.503531
4 22RV1_PROSTATE 49.27840 -1.104890 liver -3.285850 -2.146388
5 22RV1_PROSTATE 49.27840 -1.104890 kidney -3.824015 -3.141363
6 2313287_STOMACH 45.07075 -1.792617 kidney -4.034838 -4.034838
mean penetrance status_metpot
1 -3.220084 0.14285714 weakly_metastatic
2 -3.135029 0.07142857 weakly_metastatic
3 -2.940992 0.07142857 weakly_metastatic
4 -2.438389 0.21428571 weakly_metastatic
5 -3.467631 0.07142857 weakly_metastatic
6 -4.034838 0.00000000 non_metastatic
## 绘制图形
p1
p2
p3
..............
## 拼图
plot_grid(p1,p2,p3,
p4,p5,p6,
p7,p8,p9,
p10,p11,p12,
ncol = 3, nrow = 4, labels = "AUTO", align = "hv", label_size = 16)
具体参数:
-
ncol
和nrow
:行与列的数量 -
labels = “AUTO”
`:自动标注A、B、C等,也可以自己设定 -
label_size
:labels的大小 -
align
:Specifies whether graphs in the grid should be horizontally ("h") or vertically ("v") aligned. Options are "none" (default), "hv" (align in both directions), "h", and "v"
.....
具体参数可以看plot_grid()
文档。
同类型的图,你需要话很多遍,或者直接写个
for
循环也可以的。
偷懒
的操作要如何做呢?
使用facet_wrap()
函数即可,具体操作请看下面的。
直接使用前面的数据和代码绘制[跟着NC学作图 | 差异比较小提琴+柱状组合图]
多个图形
添加facet_wrap(~target_tissue)
即可。因此,在数据中需要有target_tissue
的分类信息。
ggviolin(df, "status_metpot", "emt_score", fill = "status_metpot",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "boxplot", add.params = list(fill = "white"),xlab="Metastatic Potential")+
stat_compare_means(comparisons = my_comparisons,method="wilcox")+
geom_hline(yintercept=0, linetype="dashed", color = "red")+
## 添加该信息组
facet_wrap(~target_tissue)
ENDING!!
往期文章:
1. 最全WGCNA教程(替换数据即可出全部结果与图形)
2. 精美图形绘制教程
小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!