在之前的《R语言基础绘图函数学习笔记(二)》和《小提琴图的画法》两篇文章其实介绍过无分组箱型形图和小提琴图的绘制。绘制单组的方法比较简单,但如果绘制分组的,则需要花些心思,特别是用基础函数或基于基础函数的R包作图。
当然,小提琴图可以看作加强版的箱形图,我们先看分组箱型图的画法。其实,boxplot()函数的帮助文档有分享绘制方法,绘制的效果如下:
但是,这种画法有一个明显的问题,就是横轴刻度是“双份”的。于是,我们的生信交流群就有人问啦:
看到这个问题,就花了点心思,在原来的脚本基础上做了些改进,最终得到了想要的结果,改进后的画法如下。
分组箱形图
#预先设置好坐标轴标题、刻度标签、坐标轴线的之间的间隔;
par(mgp=c(1.6,0.5,0),mar=c(4,4,1.5,1.5))
#使用axes=FALSE,frame.plot=F 隐藏坐标轴与画图边框,或者使用par(xaxt="n",yaxt="n")也是一样的隐藏效果;
#par(bty="n")与frame.plot=F 效果相同;
使用'at =' 设置画图位置;yaxs = "i",绘制与刻度“齐平”的坐标轴;