R语言 ggplot2 多图排列 Part(1)

Python022

R语言 ggplot2 多图排列 Part(1),第1张

在写论文或者报告的时候,肯定会不可避免的遇到编辑多图成一个图的情况。其实方法可以有很多,比方说最笨的办法用PPT自己手动拖移,再高级一点的用PS软件。但是都很繁琐(笔者惭愧的表示这些方法都用过)。仔细想想,好不容易用ggplot2画出了至少看上去高上大的图,到头来还是要靠PPT排版,是不是心里会有些不甘心呢。如果和我一样选择是的小伙伴,那请继续往下看文章,肯定可以给你带来不一样的体验。

本文使用到的包有 gridExtra cowplot 和 ggpubr 。

通过阅读本文你可以学会以下技能,把所组不一样的图,表,文字融合到一个页面中间。

在此也是便于重复,使用程序自带的数据 ToothGrowth 和 mtcars 。

画箱图,蜂巢图,棒状图,点图

最后用 ggarrange() 来整合这四张独立的图

用的缩小图,导致最后一张图的注释都凑到一起去了,原图没有问题,在此可以不用在意。

还可以添加文字对图进行注释

当然还有第二部分,有兴趣的同学可以接着看 R语言 ggplot2 多图排列 Part(2)

不知道你问的是在同一图形中添加点(类似画散点图)还是要把屏幕一分为多。

添加的话,用完plot,添加点用points,添加线用lines。

简单点的应用类似:

plot(X,Y)

points(X,Y1)

这样的感觉。

一分为多的话,用split.screen。

上我自己最近写的代码做个例子:

jpeg(filename="geeseP3.jpeg") #画jpeg图

split.screen(c(1,2)) #分屏幕为左右两边

screen(1) #屏幕1预备输出

plot(X2,Y,type="p",xlab="X2",ylab="Y",main="Plotting of X2 and Y")

screen(2) #屏幕2预备输出

plot(X2,Y,type="l")

dev.off()

最初我是在“ A genome-based model for adjusting radiotherapy dose (GARD): a retrospective, cohort-based study ”这篇文章中看到的一个图。

它形似一张提琴图,展示了来自不同类型疾病患者个体的GARD得分的分布,图中红色点代表了中位数。但与常规提琴图不同的地方在于,提琴图中还添加了密度信息,即数值分布更多区域颜色更为明显。尽管提琴图的宽度足以代表数值的分布区间了,颜色的添加使其更为丰富多彩。

本节内容,就让我来讲一下这种“密度提琴图”如何在R中绘制。

其实,如果从提琴图的角度出发,即首先绘制一个提琴图,然后设法在其中标识出密度,则该图是很难实现的。这点我深有体会,好几个人折腾了老半天也没能成功地在提琴图中设置密度颜色。

因此,我们需要换个角度思考该图的绘制方法。设想一下,既然要表示密度,那么首先不妨绘制一个密度分布图观测数据。

有没有什么感触呢?

对的没错,密度提琴图可以视为两张“相反方向”的密度分布图的叠加。因此,我们再绘制一个反方向的。

最后,将两张图组合在一起,就获得密度提琴图了,是不是?

同时,也计算各个变量的中位数,并以红点的形式标注在图中。

这样,密度提琴图就得到了。和常规的提琴图相比,它是不是更漂亮呢?