主讲老师第 13 课:gghalves 包绘图
相比较前两天介绍的包而言,这是一个新生代的 R 包,看他的名字就可以发现,gg 开头,一般就是基于ggplot2 包的拓展包(gghalves. zip),目前,这个包还处于 Github 中,因此,只能通过从 Github 或者下载后本地安装使用。 gghalves 包可以通过 ggplot2 包轻松地编写自己想要的一半一半的图片,ggplot2 + half-half plots 就是优秀的 gghalves。举个例子,在散点旁边显示箱线图,在小提琴图旁边显示点图,目前,在这个 R 包中,主要包含 3个 主 要 的 成 员 函 数 , 分 别 是 geom_half_boxplot() 函数 、 geom_half_violin() 函 数 和geom_half_point()函数。对于这三个函数,如果去掉中间的 half 部分,大家一定不会陌生,比如geom_half_violin() 函数,相当于 geom_violin() 函数的变体,该函数主要作用就是展示一半的小提琴图,然后,这半个图形还能与其他图形进行组合。下面,我们来看一下这个 R包是如何来进行绘制half-half plot 的。
1. R 包安装与读取
1. R 包安装与读取
这里,关于 gghalves 包的安装,提供代码版和本地安装版两种方式
方法一:从 Github 进行安装
方法二:本地安装
从 Github 上下载安装包,并解压到当前目录下。
1.2 读取 R 包
安装完成后,读取相应的 R 包。
2. 简单图
首先,我们来绘制几个简单图看看单个函数的使用是怎样的
2.1 geom_half_boxplot()函数
这里,我们就主要使用内置数据集 iris 来给大家进行演示,iris 数据集就是我们前两天介绍过的花瓣相关信息的数据集。
其中,基本的语法与 ggplot()函数一致,在其后面增加一个 geom_half_boxplot()函数。
可以看到,与我们之前的 geom_boxplot()得到的结果相比较,只展示了半边的图形。接着,我们对参数进行修改,使用 center = TRUE 将箱子居中。
这样,得到的结果就和我们之前的比较类似了。这里注意一点,实际上,上下线并不是绝对的最大值和最小值。可以看到,在第一个箱线图中,上线的上方还有几个点,代表离群值,毕竟每个数据集中总有那么几个不听话的。
2.2 geom_half_violin()函数
下面,看下半边小提琴图的效果。
2.3 geom_half_point()函数
同理,半边的点图也可以同样进行设置。
确实,只是单独的画半边并没有那么好看,但是,我们可以两两组合,下面,我们来看一下如何绘制混合图,也就是传说中的云雨图。
首先,我们来绘制半边的小提琴图,也就是云雨图中的云部分,当然,这里需要增加一个参数 side ='r',指定要右半部分图。
接下来,添加一下点图,和 ggplot()函数的语法一样,直接使用 + 进行连接:
这里,为了后面中间能再增加一些内容,对 geom_point()函数的 x 参数进行了一些微调,通过参数 x =as.numeric(Species)-0.1 ,使其整体向左移动一点位置。这样,初步的云雨图已经完成了。接下来,
我们在其中间再添加一个箱线图进去:
在点图和小提琴图的中间,一个箱线图就这么进入了。当然,接下来,是对其中的一些细节的微调,比如颜色,我们可以使用 jco 杂志的配色来分配给图形的 fill 和 color 参数:
这里注意,scale_color_jco()函数和 scale_fill_jco()函数的使用是需要加载一个包的,即ggsci 包,它其中收录一些经典杂志的配色,包括 jco,nature,lancet 等等。
随后,和上一次内容讲解的一样,借助 ggpubr 包,我们把统计分析添加到图中去同时,使用 theme_bw()函数去除图中灰色的背景。这样,一张进阶版的云雨图就绘制完成了。用习惯了箱线图后,也可以偶尔给审稿人换个品味试试