在生信文章中异希,我們經(jīng)常會(huì)見到看起來很賽博朋克的桑基圖——豐富色彩的虛實(shí)結(jié)合绒瘦,高級(jí)感滿滿称簿。如圖1,一些ceRNA網(wǎng)絡(luò)相關(guān)的文獻(xiàn)就會(huì)用啥杳保基圖來直觀的展示lncRNA憨降、miRNA、mRNA的關(guān)系该酗。
那么授药,如何在R中繪制墒亢浚基圖呢?我們廢話不多說悔叽,上代碼莱衩。
首先,安裝并加載所需的R包:
####使用ggplot2包與ggalluvial包繪制山颗欤基圖####
# 1.安裝包----
install.packages("ggplot2")
install.packages("ggalluvial")
install.packages("dplyr")
# 2.加載包----
library(ggplot2)
library(ggalluvial)
library(dplyr)
然后笨蚁,加載示例數(shù)據(jù):
# 3.加載數(shù)據(jù) (私信領(lǐng)取示例數(shù)據(jù)) ----
load("桑基圖示例數(shù)據(jù).rdata")
str(data)
我們先來看一下示例數(shù)據(jù)的結(jié)構(gòu)趟庄,這是一個(gè)40行*3列的數(shù)據(jù)框括细。
每一行表示一個(gè)樣本,第一列是樣本所屬亞組戚啥、第二列是樣本風(fēng)險(xiǎn)評(píng)分高低奋单、第三列是樣本的生存狀態(tài)。
接下來猫十,需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換:
# 4.數(shù)據(jù)轉(zhuǎn)換----
convertion <- to_lodes_form(data,
???????????????????????axes = 1:ncol(data),
???????????????????????key = "x",
???????????????????????value = "stratum",
???????????????????????id = "alluvium")
上面這幾行代碼同學(xué)們拿去用的時(shí)候览濒,只要將代碼中的data修改成你自己的數(shù)據(jù)的對(duì)象名即可。學(xué)有余力的同學(xué)可以仔細(xì)研究一下其中的參數(shù)拖云。
最后匾七,只需閉眼運(yùn)行以下代碼,就可以得到如圖4的圖形了:
# 5.繪制圖形----
pdf(file="山ぃ基圖.pdf",width=8,height=6)
color <- c("#9079ad","#7ebea5","#d8a373","#f09199","#8d6449","#4c6cb3","#fef263","#ce5242")
ggplot(convertion,
???????aes(x = x, stratum = stratum, alluvium = alluvium,fill = stratum, label = stratum))+
??scale_fill_manual(values = color)+
geom_flow(width = 0.4,aes.flow = "forward")+ #forward:線條顏色去前面的列保持一致,“backward”則與后面的列一致
??geom_stratum(alpha =0.8,width = 0.4)+
??geom_text(stat = "stratum", size = 5,color="black",family="serif")+
??theme_classic()+
??theme(axis.line = element_blank(),axis.ticks = element_blank(),axis.text.y = element_blank())+
??theme(panel.grid =element_blank())+
??theme(panel.border = element_blank())+
??theme(axis.text.x = element_text(size = 15,family="serif",colour = "black"))+
??xlab("")+
??ylab("")+
??ggtitle("")+
??guides(fill = "none") ?????????????????????
dev.off()
今天的分析到這里就結(jié)束了丁频。是不是很簡(jiǎn)單呢杉允?快去試一試吧!