多渠道绘制小提琴图,实现作图自由






多渠道绘制小提琴图,实现作图自由

小果  生信果  2023-07-14 19:00:44

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

(56线程,256G内存,个人存储1T)

 

文章中出现很多小提琴图和盒性图,即体现了美观性又具有很强的可读性。

本文汇总了很多制作小提琴图的方法可以供选择,总有一个适合你的方法。


什么是小提琴图,生物学意义是什么?

一般来说小提琴图是一种绘制连续型数据的方法,在小提琴图中既可以看到与箱线图中一样的相同的信息,包括中位数(中间的一个小白点),四分位数范围(中间的黑色的条),第一四分位数和第三四分位数,还可以观察到数数据的整体的数据分布状态。

 

 

有了进一步的了解之后,可以尝试绘制小提琴图啦~



用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")colvioplot(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是均值,还可以是medianp + 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

 

我们在做科研的时候需要用各种不同的图形来展示我们的数据,合理的选择图形,合理选择简便有效的绘图方法都是我们值得考虑的。通过总结不同的绘图方法也是我们学习好生信的必要一步,小果和你们一起加油~


通过以上的操作,相信你对于小提琴图的绘制以及一些基础的原理有了一定的了解,也一定选择了一个适合你的方法。当然这里只是一个简单的引导作用,每种包或是方法中都有很多参数,可以帮助我们绘制出更加美观的图形,值得大家细细探索。


好了,这样我们小提琴图就介绍到这里了。小伙伴们如果有什么问题就和小果讨论吧。

点击“阅读原文”立刻拥有

↓↓↓