R语言作图——Split violin plot

2020-11-05 23:01:07 浏览数 (1)

最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起。为了跟上可视化的潮流,小仙也来尝试画一下这个没查到正经名字的图。

Step1. 绘图数据的准备

首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式。

作图数据格式如下:

Step2. 绘图数据的读取

代码语言:javascript复制
data<-read.csv(“your file path”, header = T)
#注释:header=T表示数据中的第一行是列名,如果没有列名就用header=F

Step3. 绘图所需package的安装、调用

代码语言:javascript复制
library(ggunchained) 
library(reshape2)              
# 注释:package使用之前需要调用
# 注释:今天用的ggunchained是ggplot2一个拓展包,今天要用的函数geom_split_violin()需要调用这个包,
# ggunchained安装语句:library(devtools)  install_github("JanCoUnchained/ggunchained")
# devtools安装语句:install. packages("devtools")

Step4. 绘图

代码语言:javascript复制
data_melt<-melt(data,id.vars = "Sample")
# 注释:将原始的宽数据变成长数据,方便画图
p<-ggplot(data_melt,aes(x=variable,y=value,fill=Sample)) geom_split_violin()
p

Step5. 美化

代码语言:javascript复制
p<-ggplot(data_melt,aes(x=variable,y=value,fill=Sample)) geom_split_violin() 
  scale_fill_manual(values = c("#7697CB","#D293C1")) 
  theme_bw()
p

其实今天的画图语句也比较简单,关键就是找到了合适的包以及函数,这就不得不赞一下开源软件R的优势,对于初学者非常友好,不需要精通编程也可以做成很多事情。

对图片质量要求比较高、想让小提琴图取消变平滑的朋友,可以参考我之前的分享《R语言作图技巧—— 导出高清图》,今天的分享就到这里啦。

0 人点赞