R可視化:桑基圖

今天從別人的博客中栏笆,了解到如何更好地畫闪鲋迹基圖,特記錄下該代碼竖伯。

加載R包

library(dplyr)
library(tibble)
library(ggplot2)
library(ggalluvial)

導入數(shù)據(jù)

otu <- read.delim('otu_table.txt', sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
otu$OTU <- factor(otu$OTU, levels = unique(otu$OTU))
 
tax <- read.delim('taxonomy.txt', sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
tax$Phylum <- factor(tax$Phylum, levels = unique(tax$Phylum))
 
group <- read.delim('group.txt', sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
group$Sample <- factor(group$Sample, levels = unique(group$Sample))

合并 OTU 豐度存哲、OTU 門水平分類、樣本分組

otu1 <- reshape::melt(otu, id = 'OTU')
otu2 <- merge(otu1, tax, by = 'OTU')
names(otu2)[2] <- 'Sample'
otu3 <- merge(otu2, group, by = 'Sample')

整理成 ggplot2 作圖格式七婴,以便于 ggalluvial 繪制沖擊圖

otu4 <- reshape::melt(otu3, id = 'value')
names(otu4) <- c('value', 'type', 'detail')
type <- summary(otu4$type)
otu4$flow <- rep(1:type[1], length(type))

預指定 OTU祟偷、門分類、樣本打厘、分組的顏色

color_otu <- c('#8DD3C7', '#FFFFB3', '#BEBADA', '#FB8072', '#80B1D3', '#FDB462',
    '#B3DE69', '#FCCDE5', '#BC80BD', '#CCEBC5', '#FFED6F', '#E41A1C', '#377EB8',
    '#4DAF4A', '#984EA3', '#FF7F00', '#FFFF33', '#A65628', '#F781BF', '#66C2A5')
color_sample <- c('#6181BD', '#F34800', '#64A10E', '#FF00FF', '#c7475b', '#049a0b')
color_phylum <- c('#BEAED4', '#FDC086', '#FFFF99', '#386CB0', '#F0027F')
color_group <- c('#4253ff', '#ff4308')

沖擊圖

p <- ggplot(otu4, aes(x = type, y = value,
    stratum = detail, alluvium = flow, fill = detail)) +
  geom_stratum() +  
  geom_text(stat = 'stratum', infer.label = TRUE, size = 2.5) +
  geom_flow() + 
  scale_fill_manual(values = c(color_sample, color_otu, color_phylum, color_group)) + 
  scale_x_discrete(limits = c('Phylum', 'OTU', 'Sample', 'Group')) + 
  scale_y_continuous(expand = c(0, 0)) +
  labs(x = '', y = 'Abundance') +  
  theme(legend.position = 'none', axis.line = element_line(),
    panel.background = element_blank())
 
p

# 輸出圖片至本地
ggsave('test.pdf', p, width = 10, height = 5)

參考

  1. 如何畫尚蕹Γ基圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者户盯。
  • 序言:七十年代末嵌施,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子莽鸭,更是在濱河造成了極大的恐慌吗伤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硫眨,死亡現(xiàn)場離奇詭異足淆,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門巧号,熙熙樓的掌柜王于貴愁眉苦臉地迎上來族奢,“玉大人,你說我怎么就攤上這事丹鸿≡阶撸” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵靠欢,是天一觀的道長廊敌。 經(jīng)常有香客問我,道長掺涛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任疼进,我火速辦了婚禮薪缆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伞广。我一直安慰自己拣帽,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布嚼锄。 她就那樣靜靜地躺著减拭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪区丑。 梳的紋絲不亂的頭發(fā)上拧粪,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音沧侥,去河邊找鬼可霎。 笑死,一個胖子當著我的面吹牛宴杀,可吹牛的內(nèi)容都是我干的癣朗。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼旺罢,長吁一口氣:“原來是場噩夢啊……” “哼旷余!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扁达,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤正卧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后跪解,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穗酥,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了砾跃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骏啰。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抽高,靈堂內(nèi)的尸體忽然破棺而出判耕,到底是詐尸還是另有隱情,我是刑警寧澤翘骂,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布壁熄,位于F島的核電站,受9級特大地震影響碳竟,放射性物質(zhì)發(fā)生泄漏草丧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一莹桅、第九天 我趴在偏房一處隱蔽的房頂上張望昌执。 院中可真熱鬧,春花似錦诈泼、人聲如沸懂拾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岖赋。三九已至,卻和暖如春瓮孙,著一層夾襖步出監(jiān)牢的瞬間唐断,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工杭抠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留栗涂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓祈争,卻偏偏與公主長得像斤程,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子菩混,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容