R包dendextend是一個樹狀圖繪圖的綜合工具,它提供了一系列的調整樹狀圖的圖形參數,如顏色,大小以及分支類型、節點和標簽等,能用來可視化和比較樹狀圖。接下來簡單介紹其賦予不同樣本(或標簽)不同顏色的功能。
不同標簽,不同顏色
# install.packages("dendextend")#安裝包
library(dendextend)#導入包
data(USArrests)#該數據集包含了1973年美國50個州每10萬居民因犯罪而被捕的統計數據。
dend <- as.dendrogram(hclust(dist(USArrests[1:10,])))#簡單起見僅取10個樣本
###原始圖,沒有區分顏色
labels_colors(dend)#查看樹狀圖標簽的顏色,沒有賦值,所以沒有顏色,結果為NULL
## NULL
par(mfrow = c(1,2))
plot(dend, main = "Original dend")
###修飾圖,增加區分顏色
labels_colors(dend) <- 1:10#賦予10個樣本10個標簽
plot(dend, main = "A color for every state")
同一類別,同一顏色
有時候想直觀地看看同一類別是否聚到了一起,可以給每一類賦予同一種顏色,增加區分度。
# install.packages("dendextend")
library(dendextend)
small_iris <- iris[c(1,2,3,51,52,53,101,102,103), ]
dend <- as.dendrogram(hclust(dist(small_iris[,-5])))
#原始圖,沒有區分顏色
labels_colors(dend)
## NULL
par(mfrow = c(1,2))
plot(dend, main = "Original dend")
# 修飾圖,增加區分顏色
types <- factor(small_iris[,5])
n_types <- length(unique(small_iris[,5]))
cols <- colorspace::rainbow_hcl(n_types, c = 70, l = 50)
colors_to_use <- cols[types]
labels_colors(dend) <- colors_to_use
plot(dend, main = "A color for every Species")