11
我有一種情況,我正在繪製帶有類標籤的數據點的樹狀圖。 我希望看到凝聚聚類將具有相同標籤的那些聚類在一起。對標籤進行顏色編碼使得讀取這樣的樹狀圖變得容易。有沒有一種方法可以在R中使用ggdendro來實現?標籤ggdendro離開多種顏色
我有一種情況,我正在繪製帶有類標籤的數據點的樹狀圖。 我希望看到凝聚聚類將具有相同標籤的那些聚類在一起。對標籤進行顏色編碼使得讀取這樣的樹狀圖變得容易。有沒有一種方法可以在R中使用ggdendro來實現?標籤ggdendro離開多種顏色
偷大部分來自this post設置的...
library(ggplot2)
library(ggdendro)
data(mtcars)
x <- as.matrix(scale(mtcars))
dd.row <- as.dendrogram(hclust(dist(t(x))))
ddata_x <- dendro_data(dd.row)
p2 <- ggplot(segment(ddata_x)) +
geom_segment(aes(x=x, y=y, xend=xend, yend=yend))
...並增加了聚合因子...
labs <- label(ddata_x)
labs$group <- c(rep("Clust1", 5), rep("Clust2", 2), rep("Clust3", 4))
labs
# x y text group
# 1 1 0 carb Clust1
# 2 2 0 wt Clust1
# 3 3 0 hp Clust1
# 4 4 0 cyl Clust1
# 5 5 0 disp Clust1
# 6 6 0 qsec Clust2
# 7 7 0 vs Clust2
# 8 8 0 mpg Clust3
# 9 9 0 drat Clust3
# 10 10 0 am Clust3
# 11 11 0 gear Clust3
...你可以使用aes(colour=)
參數geom_text()
爲您的標籤着色:
p2 + geom_text(data=label(ddata_x),
aes(label=label, x=x, y=0, colour=labs$group))
(如果你要提供你自己的顏色,你可以使用scale_colour_manual()
,做這樣的事情:
p2 + geom_text(data=label(ddata_x),
aes(label=label, x=x, y=0, colour=labs$group)) +
scale_colour_manual(values=c("blue", "orange", "darkgreen"))
謝謝!我對R相對比較陌生,這對我很有幫助。 – chet
運行你的代碼,我得到2個錯誤: 1)'geom_segment',它找不到'x0',但這只是通過改變'x = x,y = y,xend = xend,yend = yend'; 2)在'geom_text'中,它說:'不知道如何自動選擇類型函數對象的縮放比例。默認爲連續 錯誤data.frame(X = C(1,2,3,4,5,6,7,8,9,10,11)中,y = 0,標記=函數(X,:參數意味着。不同的行數:11,1,0'我怎樣才能修復它,因爲我有一個類似的案件處理(即着色標籤),並提供了同樣的錯誤 –
@DavidePassaretti - 從Andrie德弗里斯幫助(?。 ** ** ggdendro的作者)和羅蘭(另一SO定期),我編輯的代碼,以便它與當前版本** ** ggdendro感謝爲頭工作了,這個答案是不再起作用! –