R語言實戰—圓形樹狀圖

????????話不多說,先看最終效果:

????????圓形樹狀圖是樹狀圖的一個變型,其實都是層次聚類。

接下來看代碼步驟:

首先要先安裝兩個包:

install.packages("ggtree")
install.packages("readxl")

咱就別問問什么昂,直接安裝就行,代碼復制過去,點一下回車鍵就好~

????????安裝完咱就開始導入數據,我的數據是這樣的:

就是隨便找的數據,就30多個,在這里我就不上傳了,小伙伴們自己簡單做一些就好~

file_path<-"G:/R代碼/聚類測試數據.xlsx"data <- read_excel(file_path)
#導入數據

導完數據,開始計算距離矩陣:

mydata<-hclust(dist(data))
#dist()計算點的距離形成距離矩陣
#hclust()函數會根據距離矩陣將數據點逐步合并成不同的聚類

然后開始畫圖:

p=ggtree(mydata,layout = "circular")+geom_text(aes(label=node))#顯示樹狀圖每個分支的標簽
#layout = "circular"設置樹狀圖為圓形,

然后我們觀察到,樹狀圖分為四類處的值分別為:38,40,42,43。有了這些值就可以給不同類劃分顏色區域

為避免過于凌亂,我們在觀察到值之后就注釋掉代碼。然后開始下一步

  geom_tiplab2(offset=0.5, size=3,fontface="bold",color="black")+
#offset=0.5,標簽偏移量,正值向外偏,負值向內。fontface="bold"標簽字體為粗體geom_highlight(node = 38,fill="red",alpha=0.5)+
#指定38號節點部分設置為紅色,透明度為0.5geom_highlight(node=40,fill="blue")+geom_highlight(node=42,fill="orange")+geom_highlight(node=43,fill="pink")

然后圖就變成這樣:

有了這個,我們就剩最后一個步驟,給每個類定一個標簽:

  geom_cladelabel(node=38,label="A",offset=3,barsize =2,hjust=-1,vjust=-0.5,color="red")+
#barsize =2,標簽條寬度。hjust=-1,水平對齊方式。vjust=-0.5,垂直對齊方式geom_cladelabel(node=40,label="B",offset=3,barsize =2,hjust=1.5,vjust=-0.5,color="blue")+geom_cladelabel(node=42,label="D",offset=3,barsize=2,hjust=-3,vjust=0.1,color="orange")+geom_cladelabel(node=43,label="C",offset=3,barsize=2,hjust=2,color="pink")

運行結果如下:

完整代碼如下:

library(readxl)
library(ggtree)file_path<-"G:/R代碼/聚類測試數據.xlsx"data <- read_excel(file_path)mydata<-hclust(dist(data))ggtree(mydata,layout = "circular")+
#geom_text(aes(label=node))+geom_tiplab2(offset=0.5, size=3,fontface="bold",color="black")+geom_highlight(node = 38,fill="red",alpha=0.5)+geom_highlight(node=40,fill="blue")+geom_highlight(node=42,fill="orange")+geom_highlight(node=43,fill="pink")+geom_cladelabel(node=38,label="A",offset=3,barsize =2,hjust=-1,vjust=-0.5,color="red")+geom_cladelabel(node=40,label="B",offset=3,barsize =2,hjust=1.5,vjust=-0.5,color="blue")+geom_cladelabel(node=42,label="D",offset=3,barsize=2,hjust=-3,vjust=0.1,color="orange")+geom_cladelabel(node=43,label="C",offset=3,barsize=2,hjust=2,color="pink")

小伙伴們換成自己的數據就可以運行啦~

ok,這篇就到這里啦,歡迎小伙伴們批評指正~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41357.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41357.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41357.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

29、php實現和為S的兩個數字(含源碼)

題目&#xff1a;php 實現 和為S的兩個數字 描述&#xff1a; 輸入一個遞增排序的數組和一個數字S&#xff0c;在數組中查找兩個數&#xff0c; 是的他們的和正好是S&#xff0c;如果有多對數字的和等于S&#xff0c;輸出兩個數的乘積最小的。 輸出描述&#xff1a; 對應每個測…

go zero入門

一、goctl安裝 goctl 是 go-zero 的內置腳手架&#xff0c;可以一鍵生成代碼、文檔、部署 k8s yaml、dockerfile 等。 # Go 1.16 及以后版本 go install github.com/zeromicro/go-zero/tools/goctllatest檢查是否安裝成功 $ goctl -v goctl version 1.6.6 darwin/amd64vscod…

vue2響應式原理+模擬實現v-model

效果 簡述原理 配置對象傳入vue實例 模板解析&#xff0c;遍歷出所有文本節點&#xff0c;利用正則替換插值表達式為真實數據 data數據代理給vue實例&#xff0c;以后通過this.xxx訪問 給每個dom節點增加觀察者實例&#xff0c;由觀察者群組管理&#xff0c;內部每一個鍵值…

sqlite 數據庫 介紹

文章目錄 前言一、什么是 SQLite &#xff1f;二、語法三、SQLite 場景四、磁盤文件 前言 下載 目前已經出到了&#xff0c; Version 3.46.0 SQLite&#xff0c;是一款輕型的數據庫&#xff0c;是遵守ACID的關系型數據庫管理系統&#xff0c;它包含在一個相對小的C庫中。它是…

VMware虛擬機配置橋接網絡

轉載&#xff1a;虛擬機橋接網絡配置 一、VMware三種網絡連接方式 VMware提供了三種網絡連接方式&#xff0c;VMnet0, VMnet1, Vmnet8&#xff0c;分別代表橋接&#xff0c;Host-only及NAT模式。在VMware的編輯-虛擬網絡編輯器可看到對應三種連接方式的設置&#xff08;如下圖…

美好生活的 100 條建議

簡介 一些簡潔明了的人生建議&#xff0c;易于理解&#xff0c;并且能夠為日常生活中的各個方面提供實用的指導。 財富 (Possessions) 1. If you want to find out about people’s opinions on a product, google \reddit. You’ll get real people arguing, as compared t…

SpringBoot2.2.6使用spring-boot-validation讀取不到自定義配置文件中的屬性

SpringBoot2.2.6沒有做message.properties文件中屬性的自動讀取配置。解決方法有兩種&#xff1a; 1. 升級springboot版本到2.6.x以上 2. 在現有springboot版本的基礎上添加以下自定義配置&#xff1a; Configuration public class RequestParamValidationConfig implements…

學習筆記——交通安全分析12

目錄 前言 當天學習筆記整理 4信控交叉口交通安全分析 結束語 前言 #隨著上一輪SPSS學習完成之后&#xff0c;本人又開始了新教材《交通安全分析》的學習 #整理過程不易&#xff0c;喜歡UP就點個免費的關注趴 #本期內容接上一期11筆記 當天學習筆記整理 4信控交叉口交…

ORA-03115 ORA-06594--空間不足 rman 磁帶壓縮備份 控制文件恢復后備份信息丟失

---用舊的控制文件恢復后 這個控制文件本身的備份信息不在此還原出的控制文件中。所以這個備份的控制文件就刪不掉&#xff0c;看不到。 但是只要設置正確的dbid&#xff0c;還是可以用恢復這個控制文件的 正常未恢復過controlfile的話&#xff0c;這個控制文件備份信息在現有…

Square Root SAM論文原理

文章目錄 Square Root SAM論文原理核心原理SLAM問題的3種表示貝葉斯網絡因子圖&#xff08;Factor graph&#xff09;馬爾科夫隨機場(Markov Random Field, MRF) SLAM最小二乘問題&線性化因式分解 factorization矩陣與圖(Matrices ? Graphs)因式分解&變量消元(Factori…

Kafka系列之Kafka知識超強總結

一、Kafka簡介 Kafka是什么 Kafka是一種高吞吐量的分布式發布訂閱消息系統&#xff08;消息引擎系統&#xff09;&#xff0c;它可以處理消費者在網站中的所有動作流數據。 這種動作&#xff08;網頁瀏覽&#xff0c; 搜索和其他用戶的行動&#xff09;是在現代網絡上的許多社…

14-22 劍和遠方2 - 深度神經網絡中的學習機制

概論 在第一部分中&#xff0c;我們深入探討了人工智能的興衰簡史以及推動人工智能發展的努力。我們研究了一個簡單的感知器&#xff0c;以了解其組件以及簡單的 ANN 如何處理數據和權重層。在簡單的 ANN 中&#xff0c;不會對數據執行特定操作。ANN 中的激活函數是一個線性函…

Surface splatting (2D Gaussian splatting)代碼分析

源碼地址 colab.research.google.com/drive/1qoclD7HJ3-o0O1R8cvV3PxLhoDCMsH8W 核心代碼 surface_splatting def surface_splatting(means3D, scales, quats, colors, opacities, intrins, viewmat, projmat):# Rasterization setupprojmat torch.zeros(4,4).cuda()projm…

flask使用定時任務flask_apscheduler(APScheduler)

Flask-APScheduler描述: Flask-APScheduler 是一個 Flask 擴展&#xff0c;增加了對 APScheduler 的支持。 APScheduler 有三個內置的調度系統可供您使用&#xff1a; Cron 式調度&#xff08;可選開始/結束時間&#xff09; 基于間隔的執行&#xff08;以偶數間隔運行作業…

c#中的超時終止

在C#中&#xff0c;可以使用CancellationToken和Task的超時機制來實現調用方法時的超時終止。 一 用Task.Delay(int)模擬耗時操作 static async Task Main(string[] args){using (var cts new CancellationTokenSource(1 * 1000)){await doSomething(cts.Token);}Console.Wr…

移動校園(7)ii:uniapp響應攔截器處理token,以及微信小程序報錯當前頁面正在處于跳轉狀態,請稍后再進行跳轉....

依據昨天的寫完&#xff0c;在token過期之后&#xff0c;再次調用接口&#xff0c;會觸發后端攔截&#xff0c;扔進全局錯誤處理中間件 前端說明提示都沒有&#xff0c;只有一個這個&#xff0c;現在優化一下&#xff0c;再寫一個類似全局后置守衛&#xff0c;當狀態碼是401的時…

RAID 冗余磁盤陣列

RAID也是Linux操作系統中管理磁盤的一種方式。 只有Linux操作系統才支持LVM的磁盤管理方式。 而RAID是一種通用的管理磁盤的技術&#xff0c;使用于多種操作系統。 優勢&#xff1a;提升數據的讀寫速度&#xff0c;提升數據的可靠性。具體實現哪什么功能&#xff0c;要看你所…

RGB樹-美團2023筆試(codefun2000)

題目鏈接 RGB樹-美團2023筆試(codefun2000) 題目內容 塔子哥是一位著名的冒險家&#xff0c;他經常在各種森林里探險。今天&#xff0c;他來到了道成林&#xff0c;這是一片美麗而神秘的森林。在探險途中&#xff0c;他遇到了一棵 n 個節點的樹&#xff0c;樹上每個節點都被涂…

LVGL移植與VS模擬器使用

一、移植文件介紹 二、移植部分 第一步&#xff1a;創建LVGL文件夾 第二步&#xff1a; 構造LVGL文件夾&#xff1a;LVGL - GUI - lvgl - 第三步&#xff1a;添加文件 3.1 從examples中添加2個.c文件 3.2 從src中添加文件 draw文件 extra文件 第四步&#xff1a; 三、Ke…

Linux系統安裝軟件包的方法rpm和yum詳解

起因&#xff1a; 本篇文章是記錄學習Centos7的歷程 關于rpm 常見命令 1&#xff09;查看已經安裝的軟件包 rpm -q 軟件包名 2&#xff09;查看文件的相關信息 rpm -qi 軟件包名 3&#xff09;查看軟件包的依賴關系 就是說要想安裝這個軟件包&#xff0c;就必須把一些前…