<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
ggplot2提供的geom_tile圖層可以畫熱圖了,ggplot2的geom_point或者ggstar的geom_star可以繪製點圖層。為了擴充套件ggtree在點和佈局中的系統發育樹的外環上呈現相關資料,開發的ggtreeExtra包提供了一個函數,geom_fruit用於將圖形與樹對齊,相關圖表將在樹的外部面板的不同位置對齊。還開發geom_fruit_list在樹的同一個外部面板上新增多個層。一些函數基於ggplot2並支援使用圖形語法。
if(!requireNamespace("remotes", quietly=TRUE)){ install.packages("remotes") } remotes::install_github("YuLab-SMU/ggtreeExtra") if (!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager") BiocManager::install("ggtreeExtra") BiocManager::install("ggstar") # 下載"ggstar","ggplot2","ggtree","treeio","ggnewscale"包 install.packages("ggstar") install.packages("ggplot2") install.packages("ggtree") install.packages("treeio") install.packages("ggnewscale")
library(ggtreeExtra) # 設定疊加的包 library(ggstar) # 提供幾何圖形 library(ggplot2) # library(ggtree) # 繪製進化樹 library(treeio) library(ggnewscale) # 建立新的scale,多個fill或者color
setwd("D:/R/ggtreeExtra")
# 樹狀圖資料來源路徑 trfile <- system.file("extdata", "tree.nwk", package="ggtreeExtra") # 繪製點圖和柱狀圖的資料來源路徑 tippoint1 <- system.file("extdata", "tree_tippoint_bar.csv", package="ggtreeExtra") # 樹外第一層的繪製熱圖來資料來源路徑 ring1 <- system.file("extdata", "first_ring_discrete.csv", package="ggtreeExtra") # 樹外第二層的繪製熱圖來資料來源路徑 ring2 <- system.file("extdata", "second_ring_continuous.csv", package="ggtreeExtra")
樹檔案是使用 read . tree 匯入的。如果有其他樹格式的檔案,可以使用 tree io 包的相應函數來讀取.
tree <- read.tree(trfile) data = fortify(tree) head(data)
# 視覺化進化樹,這裡圖形選用的是"fan",還可以是 'rectangular', 'dendrogram', 'slanted', 'ellipse', 'roundrect', 'circular', 'circular', 'inward_circular', 'radial', 'equal_angle', 'daylight' or 'ape' p <- ggtree(tree, layout="fan", open.angle=10, size=0.5) p
dat1 <- read.csv(tippoint1) knitr::kable(head(dat1)) dat2 <- read.csv(ring1) knitr::kable(head(dat2)) dat3 <-read.csv(ring2) knitr::kable(head(dat3)) head(dat3)
dat1資料集用來繪製成點和條形圖
dat2資料集用於繪製熱圖
dat3資料集用於繪製熱圖
p2 <- p + geom_fruit( data=dat1, geom=geom_star, mapping=aes(y=ID, fill=Location, size=Length, starshape=Group), position="identity", starstroke=0.2 ) + scale_size_continuous( range=c(1, 3), # 大小範圍 guide=guide_legend( keywidth=0.5, # 箱體寬度0.5 Keyheight=0.5, # 箱體寬度0.5 override.aes=list(starshape=15), order=2 ) ) + scale_fill_manual( values=c("#F8766D", "#C49A00", "#53B400", "#00C094", "#00B6EB", "#A58AFF", "#FB61D7"), guide="none" ) + scale_starshape_manual( values=c(1, 15), guide=guide_legend( keywidth=0.5, keyheight=0.5, order=1 ) ) p2
p3 <- p2 + new_scale_fill() + geom_fruit( data=dat2, geom=geom_tile, mapping=aes(y=ID, x=Pos, fill=Type), offset=0.08, # 外部層之間的距離,預設為樹的 x 範圍的0.03倍。 pwidth=0.25 # 外部層的寬度,預設為樹的 x 範圍的0.2倍。 ) + scale_fill_manual( values=c("#339933", "#dfac03"), guide=guide_legend( keywidth=0.5, keyheight=0.5, order=3 ) ) p3
p4 <- p3 + new_scale_fill() + geom_fruit( data=dat3, geom=geom_tile, mapping=aes(y=ID, x=Type2, alpha=Alpha, fill=Type2), pwidth=0.15, axis.params=list( axis="x", # 新增圖層的軸文字 text.angle=-45, #x 軸的文字角度 hjust=0 # 調整文字軸的水平位置 ) ) + scale_fill_manual( values=c("#b22222", "#005500", "#0000be", "#9f1f9f"), guide=guide_legend(keywidth=0.5, keyheight=0.5, order=4) ) + scale_alpha_continuous( range=c(0, 0.4), # alpha的範圍 guide=guide_legend(keywidth=0.5, keyheight=0.5, order=5) ) p4
p5 <- p4 + new_scale_fill() + geom_fruit( data=dat1, geom=geom_bar, mapping=aes(y=ID, x=Abundance, fill=Location), # dat 1的Abundance將被對映到 x pwidth=0.4, stat="identity", orientation="y", # 軸的方向 axis.params=list( axis="x", # 新增圖層的軸文字 text.angle=-45, # 軸的文字大小 hjust=0 # 調整軸文字的水平位置 ), grid.params=list() # 新增外部條形圖的格線 ) + scale_fill_manual( values=c("#F8766D", "#C49A00", "#53B400", "#00C094", "#00B6EB", "#A58AFF", "#FB61D7"), guide=guide_legend(keywidth=0.5, keyheight=0.5, order=6) ) + theme(#legend.position=c(0.96, 0.5), # 圖例位置 legend.background=element_rect(fill=NA), # 圖例背景 legend.title=element_text(size=7), # 圖例標題大小 legend.text=element_text(size=6), # 圖例文字標籤大小 legend.spacing.y = unit(0.02, "cm") # 調節y軸圖例的距離 ) p5
以上就是R包ggtreeExtra繪製進化樹的詳細內容,更多關於R包ggtreeExtra繪製進化樹的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45