91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果

發布時間:2021-11-22 14:44:26 來源:億速云 閱讀:1090 作者:柒染 欄目:大數據

今天就跟大家聊聊有關R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

 今天的主要內容是實現下面這幅圖
R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果  
image.png

做完聚類分析通常可以選擇樹形圖來展示聚類分析的結果,之前公眾號也分享過一篇文章  R語言聚類樹圖小例子 如果樣本數不是很多,可以選擇矩形的樹狀圖。但是樣本數如果比較多,比如今天一位公眾號的讀者留言說他有160多個樣本,這樣矩形的樹狀圖就會比較寬或者比較長。這個時候就可以選擇用圓形的柱形圖來展示。

那么圓形的樹狀圖如何實現呢?我查找了一下相關資料。R語言包dendextend這個包可以實現,利用help(package="dendextend")查看幫助文檔,能夠看到其中的一個小例子

iris2<-iris[,-5]
species_labels<-iris[,5]
library(colorspace)
species_col<-rev(rainbow_hcl(3))[as.numeric(species_labels)]
d_iris<-dist(iris2)
hc_iris<-hclust(d_iris,method="complete")
iris_species<-rev(levels(iris[,5]))
iris_species
library(dendextend)
dend<-as.dendrogram(hc_iris)
dend <- color_branches(dend, k=3)

labels(dend) <- paste(as.character(iris[,5])[order.dendrogram(dend)],
                     "(",labels(dend),")",
                     sep = "")
circlize_dendrogram(dend)
 
R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果  
image.png

但是這個后期美化起來好像不太方便。

還找到了一個參考鏈接是 http://talgalili.github.io/dendextend/articles/dendextend.html

介紹的也是 dendextend這個包的用法。

Y叔開發的ggtree包時用來可視化進化樹的,我隱約記得好像也可以用來畫聚類分析的樹狀圖。所以我搜索 ggtree show cluster result 找到 http://yulab-smu.top/treedata-book/chapter9.html 這個應該是Y叔專門為ggtree寫的一本書。這里寫到直接將聚類分析的結果傳遞給ggtree()就可以,比如

library(ggtree)
hc <- hclust(dist(mtcars))
ggtree(hc)
 

這里我先用了 我之前在3.6.1版本上安裝的ggtree,是不可以的。應該是需要更新到最新的ggtree版本。如何更新R包這里我沒有仔細研究。我直接安裝了R4.0.3,然后在這個R版本里安裝ggtree

install.packages("BiocManager")
BiocManager::install("ggtree")
 

這個時候再運行上面提到的例子就可以直接得到結果

library(ggtree)
hc <- hclust(dist(mtcars))
ggtree(hc)
 
R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果  
image.png
 基本的美化

把樹的形狀改為圓形,添加樣本的名稱

ggtree(hc,layout = "circular")+
 geom_tiplab2(offset=10)+
 xlim(0,300)
 
R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果  
image.png
 接下來我們用鳶尾花的數據集試一下

鳶尾花數據集是150個樣本,用圓形的圖看下效果

df<-iris[,1:4]  
rownames(df)<-paste(iris$Species,1:150,sep="_")

hc<-hclust(dist(df))
library(ggtree)
help(package="ggtree")
ggtree(hc,layout="circular")+
 xlim(0,5)+
 geom_tiplab2(offset=0.1,
              size=2)+
 #geom_text(aes(label=node))+
 geom_highlight(node = 152,fill="red")+
 geom_highlight(node=154,fill="steelblue")+
 geom_highlight(node=155,fill="green")+
 geom_cladelabel(node=152,label="virginica",
                 offset=1.2,barsize = 2,
                 vjust=-0.5,color="red")+
 geom_cladelabel(node=154,label="versicolor",
                 offset=1.2,barsize = 2,
                 hjust=1.2,color="steelblue")+
 geom_cladelabel(node=155,label="setosa",
                 offset=1.2,barsize = 2,
                 hjust=-1,color="green")
 

最終的結果是

R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果  

看完上述內容,你們對R語言中怎么用ggtree畫圓形的樹狀圖展示聚類分析的結果有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黑山县| 曲松县| 泗水县| 商河县| 分宜县| 双江| 瓮安县| 景德镇市| 永泰县| 扎鲁特旗| 巴楚县| 施秉县| 郯城县| 略阳县| 蒙城县| 古蔺县| 沧州市| 九寨沟县| 文水县| 资中县| 礼泉县| 和顺县| 黔西县| 宜川县| 文山县| 昌江| 白朗县| 定边县| 彝良县| 得荣县| 开封县| 昌图县| 环江| 宝鸡市| 荣成市| 南开区| 尼木县| 方正县| 丘北县| 诸暨市| 江安县|