文章中出现很多小提琴图和盒性图,即体现了美观性又具有很强的可读性。
本文汇总了很多制作小提琴图的方法可以供选择,总有一个适合你的方法。
什么是小提琴图,生物学意义是什么?
一般来说小提琴图是一种绘制连续型数据的方法,在小提琴图中既可以看到与箱线图中一样的相同的信息,包括中位数(中间的一个小白点),四分位数范围(中间的黑色的条),第一四分位数和第三四分位数,还可以观察到数数据的整体的数据分布状态。
有了进一步的了解之后,可以尝试绘制小提琴图啦~
用vioplot包绘制小提琴图
#安装加载安装包
install.packages(“vioplot”)
library(vioplot)
#利用R中自带的iris来学习小提琴的绘制
df <- data.frame(iris)
#这样绘制出基础的小提琴图形
vioplot(Sepal.Length~Species,data = df,main =”Speal Length”,col = c(“lightgreen”,”lightblue”,”pink”))
#添加图例
legend(“topleft”,legend=c(“setosa”,”versicolor”,”virginica”),fill = c(“lightgreen”,”lightblue”,”pink”),cex = 0.7)
在尝试一个关于R中钻石的数据~
#钻石
df1 <- data.frame(diamonds)
head(df1)
#绘制钻石的价格是与cut、color和clarity三个不同维度中的数据状态
a <- length(levels(df1$cut))
b <- length(levels(df1$color))
c <- length(levels(df1$clarity))
num = max(a,b,c)
#最多有8个画板,选择画板
install.packages(“RColorBrewer”)
library(RColorBrewer)
col <- RColorBrewer::brewer.pal(8,”Accent”)
col
vioplot(price~cut,data = diamonds,col = col)
用ggpubr来绘制小提琴图
在以前我们用ggpubr绘制过相关性分析图,这个万能的绘图包也可以用来绘制相应的小提琴图。
comparisons <- list(c(“setosa”, “versicolor”), c(“versicolor”, “virginica”), c(“setosa”,”virginica”))
library(ggpubr)
ggviolin(iris, x = “Species”, y = “Sepal.Length”,
fill = “Species”, #xy轴定义,填充映射到物种上
palette = c(“lancet”),#色块的选择,这里提供了”npg”, “aaas”, “lancet”, “jco”, “ucscgb”, “uchicago”, “simpsons” and “rickandmorty”等
add = “boxplot”,#添加箱线图在图中,还可以选择”none”, “dotplot”, “jitter”, “boxplot”, “point”, “mean”, “mean_se”, “mean_sd”, “mean_ci”, “mean_range”, “median”, “median_iqr”, “median_hilow”, “median_q1q3”, “median_mad”, “median_range”等来查看图中的一些细节部分
add.params = list(fill = “white”),#填充为白色
order = c(“virginica”,”versicolor”,”setosa”), error.plot = “errorbar”) + stat_compare_means(comparisons = comparisons)
#最后用stat_compare_means函数实现两两比较的田间p值的操作。
用ggplot绘制小提琴图
相比于前面的两种ggplot绘制小提琴图较为麻烦一下,但是确可以满足很多精细的需求。ggplot绘图就像是我们绘画一样,一步一步的添加即可,那跟随小果的步伐一起来操作一下吧~
#绘制一个基本的图层
p <- ggplot(ToothGrowth, aes(x = dose, y = len))
#基础
p + geom_violin()
#不修剪小提琴的尾部
p + geom_violin(trim = FALSE, fill = “steelblue”)
#添加统计值,fun=mean是均值,还可以是median
p + geom_violin(trim = FALSE) +stat_summary(fun= mean, geom = “point”,
shape = 23, size = 2, color = “blue”)
#添加箱线图
p + geom_violin(trim = FALSE) +
geom_boxplot(width = 0.2)
#填充颜色
p + geom_violin(aes(fill = dose), trim = FALSE)+geom_boxplot(width = 0.2)
除了以上绘制的方法意外还有很多小工具已经实现了小提琴的绘制,例如:https://www.bioinformatics.com.cn/plot_basic_vertical_horizontal_violin_plot_068
我们在做科研的时候需要用各种不同的图形来展示我们的数据,合理的选择图形,合理选择简便有效的绘图方法都是我们值得考虑的。通过总结不同的绘图方法也是我们学习好生信的必要一步,小果和你们一起加油~
通过以上的操作,相信你对于小提琴图的绘制以及一些基础的原理有了一定的了解,也一定选择了一个适合你的方法。当然这里只是一个简单的引导作用,每种包或是方法中都有很多参数,可以帮助我们绘制出更加美观的图形,值得大家细细探索。
好了,这样我们小提琴图就介绍到这里了。小伙伴们如果有什么问题就和小果讨论吧。