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了,那麼問題來了,怎麼才能讓圖片變成下圖這個樣子呢?小仙同學用了個很笨的方法,下次分享揭曉答案喲!
如果你有好的方法,可以留言告訴我哦!!
(公眾號:生信了)
推薦閱讀: