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

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

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

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

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

IMG_256

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

用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)

截屏2023-06-12 10.09.29

在尝试一个关于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)

Rplot03

用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值的操作。

截屏2023-06-12 13.43.46

用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)

截屏2023-06-12 14.38.38

除了以上绘制的方法意外还有很多小工具已经实现了小提琴的绘制,例如:https://www.bioinformatics.com.cn/plot_basic_vertical_horizontal_violin_plot_068

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

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

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