最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起。为了跟上可视化的潮流,小仙也来尝试画一下这个没查到正经名字的图。
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语言作图技巧—— 导出高清图》,今天的分享就到这里啦。