跟著Nature學(xué)畫圖~R語(yǔ)言ggtree展示進(jìn)化樹(shù)并添加圖片注釋~歡迎關(guān)注公眾


1.首先得有一個(gè)生成好的進(jìn)化樹(shù)文件-nwk格式
up根據(jù)圖片自己模擬了樹(shù)文件(強(qiáng)?。。。。?/p>

從樹(shù)文件——nwk文件反推,各數(shù)字代表含義

2. ggtree可視化進(jìn)化樹(shù)
2.1 安裝ggtree包
借助于BiocManager::install("ggtree") llibrary(ggtree) tree<-read.tree("nature/nature_tree_1.nwk")#讀取進(jìn)化樹(shù)

2.2 繪制簡(jiǎn)單的樹(shù)
- ggtree(tree)+geom_tiplab()
2.3 圖形超出邊界的情況xlim()
theme_tree2() 顯示橫軸的范圍
- ggtree(tree)+geom_tiplab()+xlim()
#改橫軸的值范圍(NA,4.5 ) 寬闊不少

2.4 改變樹(shù)形的線條粗細(xì)tree后面
- ggtree(tree,size=2)+geom_tiplab()+xlim()
直接在ggtree(tree,size=2)

2.5 修改標(biāo)簽label到樹(shù)的距離
參數(shù):offset=
- ggtree(tree,size=2)+geom_tiplab(offset=1)+xlim(NA,4.5)

up嘗試了很多次才選擇了0.05這個(gè)數(shù)值比較完美,自己做的話也需要多次嘗試找到適合自己的樹(shù)的距離
- ggtree(tree,size=2)+geom_tiplab(offset=0.05)+xlim(NA,4.5)
2.6 調(diào)整標(biāo)簽——物種名的字體斜體和去掉下劃線_
參數(shù):font=
- ggtree(tree,size=2)+geom_tiplab(offset=0.05,font=“italic”)+xlim(NA,4.5)
思路:替換,將下劃線替換成空格
使用stringr包,str_place()里面的參數(shù)分別是:替換前內(nèi)容A,需要替換的細(xì)節(jié)b,替換的那個(gè)東西c(將A中的b替換成c)===將標(biāo)簽中的下劃線替換成空格
- library(stringr)
- str_place("a_b","_"," ")
- aes(label=str_place(label,"_"," "))

- ggtree(tree)+geom_tiplab(offset = 3,font="italic",aes(label=str_replace(label,"_"," ")))+?xlim(NA,400)
2.7 在末端添加圖片
注意:
圖片需放在進(jìn)化樹(shù)目錄下
圖片名需和label的名字一樣
函數(shù):image參數(shù)
還是一個(gè)映射aes的思想:將目錄里的圖片一一粘貼paste到樹(shù)上標(biāo)簽旁邊(給標(biāo)簽加圖片,所以處理還是在geom_tiplab()),
還需要調(diào)整圖片距離末端的遠(yuǎn)近:使用offset()或者使用PS/PDF編輯器直接挪動(dòng)修改距離
- +geom_tiplab(aes(image=paste0("nature/",label,"png")),geom="image",offset=1.25,size=0.2)


- PDF編輯器修改距離和大小



與論文里的圖一模一樣了~優(yōu)秀的小明老師