R語言作圖——Facet violin plot

原創:黃小仙

老鐵們,許久未見啦。順便說一下,最近可不是小仙同學偷懶喲,電腦上個月送修今天剛剛拿回來(想買聯想Yoga的同學先問問自己會不會拆電腦換排線,我買的這台用了一個月,送修也用了一個月)。

最近我可攢了個大招呢,先來看看下面這張圖,有沒有很眼熟呢?

這張圖在開始介紹R語言的時候就出現過啦,不過小仙同學當時並不知道怎麼畫。今天可以秀一把啦。小仙並沒有找到這種的準確中文名,總之就是把很多張小提琴曲線堆疊在一起。

Step1. 繪圖數據的準備

老樣子,準備好要作圖的csv文件。

數據的格式如下圖:列表示一種變數(特徵),第一行是列名

a1~a9表示9種基因,TypeA~TypeC表示三種不同的細胞

Step2. 繪圖數據的讀取

data<-read.csv(「your file path」, header = T)

#注釋:header=T表示數據中的第一行是列名,如果沒有列名就用header=F

Step3.繪圖所需package的安裝、調用

install.packages("devtools") #注釋:大家要注意今天要用的package安裝比較特別喲

library(devtools)

install_github("kassambara/easyGgplot2")

library(easyGgplot2)

install.package("reshape2")

#注釋:今天還要用到一個新的函數,reshape2里的melt函 數,可以把寬數據變成長數據

library(reshape2)

Step4繪圖

ggplot2.violinplot(data=df, xName=variable, yName=value, groupName=variable, legendPosition="top", aceting=TRUE,facetingVarNames="type")

#注釋:xName表示x軸變數,yName表示y軸變數

Step5.美化

ggplot2.violinplot(data=df,xName=variable,yName=value,groupName=variable, legendPosition="top",backgroundColor="white",removePanelGrid=TRUE,

axisLine=c(0.5, "solid", "black"),faceting=TRUE, facetingVarNames="type")

Ps:如果想去掉邊框可以加上這一句removePanelBorder=TRUE

到這裡已經可以完成facet violin plot了,那麼問題來了,怎麼才能讓圖片變成下圖這個樣子呢?小仙同學用了個很笨的方法,下次分享揭曉答案喲!

如果你有好的方法,可以留言告訴我哦!!

(公眾號:生信了)


推薦閱讀:

TAG:R(編程語言) | 生物信息學 | 科研 |