最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R包ggtreeExtra繪制進化樹

 更新時間:2022年06月24日 11:53:59   作者:維凡生物  
這篇文章主要為大家介紹了R包ggtreeExtra繪制進化樹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

ggplot2提供的geom_tile圖層可以畫熱圖了,ggplot2的geom_point或者ggstar的geom_star可以繪制點圖層。為了擴展ggtree在點和布局中的系統(tǒng)發(fā)育樹的外環(huán)上呈現(xiàn)相關數(shù)據(jù),開發(fā)的ggtreeExtra包提供了一個函數(shù),geom_fruit用于將圖形與樹對齊,相關圖表將在樹的外部面板的不同位置對齊。還開發(fā)geom_fruit_list在樹的同一個外部面板上添加多個層。一些函數(shù)基于ggplot2并支持使用圖形語法。

繪圖示例

1、下載安裝ggtreeExtra包

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")

2、加載依賴包

library(ggtreeExtra) # 設置疊加的包
library(ggstar) # 提供幾何圖形
library(ggplot2) # 
library(ggtree) # 繪制進化樹
library(treeio)
library(ggnewscale) # 創(chuàng)建新的scale,多個fill或者color

3、設置工作目錄

setwd("D:/R/ggtreeExtra")

4、數(shù)據(jù)來源

# 樹狀圖數(shù)據(jù)來源路徑
trfile <- system.file("extdata", "tree.nwk", package="ggtreeExtra")
# 繪制點圖和柱狀圖的數(shù)據(jù)來源路徑
tippoint1 <- system.file("extdata", "tree_tippoint_bar.csv", package="ggtreeExtra")
# 樹外第一層的繪制熱圖來數(shù)據(jù)源路徑
ring1 <- system.file("extdata", "first_ring_discrete.csv", package="ggtreeExtra")
# 樹外第二層的繪制熱圖來數(shù)據(jù)源路徑
ring2 <- system.file("extdata", "second_ring_continuous.csv", package="ggtreeExtra")

5、獲取數(shù)據(jù)

樹文件是使用 read . tree 導入的。如果有其他樹格式的文件,可以使用 tree io 包的相應函數(shù)來讀取.

tree <- read.tree(trfile)
data = fortify(tree)
head(data)

6、繪制樹狀圖

# 可視化進化樹,這里圖形選用的是"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

7、獲取數(shù)據(jù)集繪制圖

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數(shù)據(jù)集用來繪制成點和條形圖

dat2數(shù)據(jù)集用于繪制熱圖

dat3數(shù)據(jù)集用于繪制熱圖

a、繪制點圖層

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

b、繪制熱圖層

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

c、繪制熱圖層

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

d、繪制柱狀圖層

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() # 添加外部條形圖的網(wǎng)格線
  ) + 
  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")  # 調節(jié)y軸圖例的距離
  ) 
p5

以上就是R包ggtreeExtra繪制進化樹的詳細內容,更多關于R包ggtreeExtra繪制進化樹的資料請關注腳本之家其它相關文章!

相關文章

  • R語言可視化ggplot2繪制24小時動態(tài)血糖圖

    R語言可視化ggplot2繪制24小時動態(tài)血糖圖

    這篇文章主要為大家介紹了R語言可視化使用ggplot2繪制24小時動態(tài)血糖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • R語言:實現(xiàn)因子與字符串的互轉

    R語言:實現(xiàn)因子與字符串的互轉

    這篇文章主要介紹了R語言:實現(xiàn)因子與字符串的互轉操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言數(shù)據(jù)的輸入和輸出操作

    R語言數(shù)據(jù)的輸入和輸出操作

    這篇文章主要介紹了R語言數(shù)據(jù)的輸入和輸出操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言判斷語句的使用詳解

    R語言判斷語句的使用詳解

    這篇文章主要介紹了R語言判斷語句的使用詳解,幫助大家更好的理解和學習使用R語言,感興趣的朋友可以了解下
    2021-03-03
  • R語言實現(xiàn)對數(shù)據(jù)框按某一列分組求組內平均值

    R語言實現(xiàn)對數(shù)據(jù)框按某一列分組求組內平均值

    這篇文章主要介紹了R語言實現(xiàn)對數(shù)據(jù)框按某一列分組求組內平均值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言導入CSV數(shù)據(jù)的簡單方法

    R語言導入CSV數(shù)據(jù)的簡單方法

    這篇文章主要介紹了R語言導入CSV數(shù)據(jù)的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • R語言變量重編碼、重命名的操作

    R語言變量重編碼、重命名的操作

    這篇文章主要介紹了R語言變量重編碼、重命名的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言繪圖技巧導出高清圖方法

    R語言繪圖技巧導出高清圖方法

    這篇文章主要為大家介紹了R語言繪圖技巧如何導出高清圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • R語言學習之基礎繪圖詳解

    R語言學習之基礎繪圖詳解

    這篇文章主要為大家詳細介紹了R語言中基礎繪圖的相關知識,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • R語言中對數(shù)據(jù)框的列名重命名的實現(xiàn)

    R語言中對數(shù)據(jù)框的列名重命名的實現(xiàn)

    這篇文章主要介紹了R語言中對數(shù)據(jù)框的列名重命名的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論

阿拉善左旗| 美姑县| 如皋市| 昌宁县| 阿拉尔市| 呈贡县| 临城县| 阿拉善盟| 神农架林区| 中山市| 吉安县| 澎湖县| 南投县| 咸宁市| 茶陵县| 南投县| 仙游县| 色达县| 阿勒泰市| 通州区| 城固县| 泸水县| 安义县| 太仆寺旗| 华坪县| 涿鹿县| 临武县| 浑源县| 博客| 巴林右旗| 太原市| 社会| 金秀| 马尔康县| 台州市| 赤水市| 宁蒗| 棋牌| 芦山县| 三江| 镇平县|