Следующий код создает показанный график.
library(ggplot2)
library(dendextend)
library(cowplot)
set.seed(1234)
N<-10
set1 <- mvrnorm(n = N, c(0,0), matrix(c(0.5,0,0,0.5),2))
df <- data.frame(set1,label=1:N)
# ?dist
# dist method options: "euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"
set1.dist <- dist(x=df[1:2],method = "euclidean")
fit1 <- hclust(d=set1.dist, method = "complete")
df$cluster <- cutree(fit1,k = 3)
p1 <- ggplot(df) +
geom_text(aes(x=X1,y=X2,label=label ,color=as.factor(cluster)))+
theme(legend.position = "none")
# p1
# ?hclust
# hclust method options "ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty" (= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).
p2 <- hclust(d=set1.dist, method = "complete") %>%
as.dendrogram() %>%
color_labels(k=3) %>%
set("branches_k_color", k = 3) %>%
as.ggdend() %>%
ggplot(horiz = T, theme = NULL) +
theme(axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank())
#plot(fit1,hang = -1, labels = df$label, main="Test",xlab = "")
#?rect.hclust()
plot_grid(p1,p2)
Я хочу иметь одинаковое назначение цветов для кластеров на обоих графиках (разброс и дендрограмма), но ни одна из моих попыток, похоже, не удалась. Я думаю, что есть неправильный порядок кластеров в дендрограмме или что-то еще.