簡體   English   中英

對聚類樹狀圖的調整

[英]Adjustments to the graph of a cluster dendrogram

我在生成集群樹狀圖時遇到了一些問題。

集群技術正在發揮作用,問題只是圖表。 我想對它做一些小的調整。

X 軸上的名稱與帶有組划分的線條末端之間的距離很大,並且不必要地覆蓋了圖形的很大一部分,我非常想減少它(圖像上的綠色標記)。 因此,我希望 Y 軸上的比例增加(圖像上的藍色標記)。

有誰知道如何解決這個問題? 我搜索了 rect.hclust 的文檔,但沒有找到進行這些調整的參數。

為了便於理解,我附上了生成的樹狀圖的腳本和圖像以及我想要發生的事情。

非常感謝您的關注(和幫助)!

圖片

pts <- read_excel("C:/pts.xlsx")
row.names(pts) <- c("Painting","Dance","Photo", "Cinema","Book","Music")
matrix = dist(pts, "euclidean")
group = hclust(matrix, "ward.D")
hcd <- as.dendrogram(group)
dend_data <- dendro_data(hcd, type = "rectangle")
plot(group, hang=-1)
rect.hclust(group, k=3, border="red")

我認為 hang=-1 有效,除非我誤解了你:

png("base.png",width=400,height=600)
group=hclust(dist(mtcars))
plot(group, hang=-1,cex=0.7)
rect.hclust(group, k=3, border="red")
dev.off()

在此處輸入圖片說明

使用 ggdendro,繪制矩形並非易事,但您可以嘗試使用顏色標簽:

library(ggdendro)
library(ggplot2)
hcdata <- dendro_data(group)
cluster_id <- cutree(group,3)[as.character(hcdata$labels$label)]
cluster_cols <- c("#b590ca","#a8d3da","#f5cab3")

ggplot() +
geom_segment(data=hcdata$segments, aes(x=x, y=y, xend=xend, yend=yend)) +
scale_x_continuous(breaks = seq_along(hcdata$labels$label), 
            labels = hcdata$labels$label)+
theme_dendro()+
theme(axis.text.x = element_text(angle = 90, 
hjust = 1,colour=cluster_cols[cluster_id])) + 
theme(axis.text.y = element_text(angle = 90, hjust = 1))

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM