基于R語言的微生物群落組成多樣性分析——物種豐度可視化之弦圖(Chord Diagram)

引言

????上一期內(nèi)容我們介紹了基于R語言使用熱圖(Heatmap)對微生物豐度進行展示,今天這期內(nèi)容主要介紹如何使用弦圖(Chord Diagram)來展示物種豐度的計算結(jié)果!

正文——代碼

1、工作目錄設(shè)置及R包的加載

rm(list=ls())
setwd("D:\\桌面\\SCI論文寫作與繪圖物種豐度計算及可視化")
#安裝、加載包
install.packages("circlize")
install.packages("statnet")
library(circlize)
library(statnet)

2、加載數(shù)據(jù)并對其進行處理

#準(zhǔn)備數(shù)據(jù)(此前計算豐度生成的數(shù)據(jù))
data <- read.table("Genus_x.txt",sep="\t",header = T,row.names = 1,check.names = F)
data <- as.matrix(m)#轉(zhuǎn)換數(shù)據(jù)格式
#生成作圖數(shù)據(jù)
df <- data.frame(from = rep(rownames(data), ncol(data)),
                 to = rep(colnames(data), each = nrow(data)),
                 value = as.vector(data))
image.png

image.png

3、繪圖

1) 顏色設(shè)定
color=NULL
color[c("A","B","C","D","E")]=c("blue","red","yellow","green","pink")
color[rownames(data)]=c("#40A4D8","#33BEB7","#B2C224","#FECC2F","#FBA127",
                           "#F66320","#DB3937","#A463D7","#0C5BCE","grey","black")

2) 繪圖

chordDiagram(df, 
             grid.col =color,#顏色
             annotationTrack = "grid",
             transparency = 0.2,#透明度
             link.lwd = 0.00001,#線條寬度
             link.lty = 1,    # 線路類型
             link.border = 0,#邊框顏色
             directional = -1,#表示線條的方向,0代表沒有方向,1代表正向,-1代表反向,2代表雙向
             diffHeight = mm_h(3),#外圈和中間連線的間隔
             direction.type = c("diffHeight","arrows"), #線條是否帶有箭頭
             link.arr.type = "big.arrow",#箭頭類型
             annotationTrackHeight = c(0.04, 0.1))#網(wǎng)格高度
image.png

3) 添加標(biāo)簽并設(shè)置標(biāo)簽方向

circos.track(track.index = 1, panel.fun = function(x, y) {
  circos.text(CELL_META$xcenter, CELL_META$ylim[1], CELL_META$sector.index,
              facing = "clockwise", niceFacing = T, adj = c(-0.5, 0.5), cex = 0.8)
  circos.axis(h = "top", labels.cex = 0.4,labels.niceFacing = F, labels.pos.adjust =F)
}, bg.border = NA)
image.png

4)生成圖例

legend("right",pch=20,legend=rownames(data),
       col=color[rownames(data)],bty="n",
       cex=1,pt.cex=3,border="black")

image.png

由于繪圖板大小限制,所以此時我們看到生成的圖例與標(biāo)簽排版混亂,互相重疊,此時需要我們將其保存成PDF以將圖例和圖形主體部分分開。

4、保存

pdf(file="1.pdf", width=9, height=5, pointsize=8)
chordDiagram(df, 
             grid.col =color,
             annotationTrack = "grid",#diy添加label和axis
             transparency = 0.2,#透明度
             link.lwd = 0.00001,#線條寬度
             link.lty = 1,    # 線路類型
             link.border = 0,#邊框顏色
             directional = -1,#表示線條的方向,0代表沒有方向,1代表正向,-1代表反向,2代表雙向
             diffHeight = mm_h(3),#外圈和中間連線的間隔
             direction.type = c("diffHeight","arrows"), #線條是否帶有箭頭
             link.arr.type = "big.arrow",#箭頭類型
             annotationTrackHeight = c(0.04, 0.1))#網(wǎng)格高度
circos.track(track.index = 1, panel.fun = function(x, y) {
  circos.text(CELL_META$xcenter, CELL_META$ylim[1], CELL_META$sector.index,
              facing = "clockwise", niceFacing = T, adj = c(-0.5, 0.5), cex = 0.8)
  circos.axis(h = "top", labels.cex = 0.4,labels.niceFacing = F, labels.pos.adjust =F)
}, bg.border = NA)
legend("right",pch=20,legend=rownames(data),
       col=color[rownames(data)],bty="n",
       cex=1,pt.cex=3,border="black") # 設(shè)定圖例
dev.off()

image.png

此時圖例已經(jīng)和圖形主體部分分開,但是圖中標(biāo)簽還是比較混亂,需要我們使用\color{red}{AI}進行美化。

5、AI美化

image.png

源碼及數(shù)據(jù)在公眾號后臺回復(fù)\color{red}{“Chord”}獲取?。。?/strong>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容