Я пытаюсь построить тепловую карту корреляционной матрицы, используя ggplot2.
Это моя корреляционная матрица
cormatx <- rcorr(as.matrix(data.frame))$r
Я хочу изменить порядок корреляционной матрицы, используя корреляцию между переменными в качестве расстояния:
dist <- as.dist((1-cormatx)/2)
hcl <- hclust(dist)
cormatx1 <-cormatx[hcl$order, hcl$order]
Пока все хорошо. Теперь я преобразовываю матрицу корреляции в длинный формат
melted_cormatx <- melt(cormatx1)
Теперь я пытаюсь построить:
Plot1 <- ggplot(melted_cormatx, aes(X1, X2)) +
geom_tile(aes(fill = value)) +
theme(panel.background = element_blank(),
panel.grid.minor = element_blank(),
panel.grid.major = element_blank()) +
scale_fill_gradient2(limits=c(-.4, .4),
midpoint=0, low="navy", mid="white", high="red4", name="Scale") +
theme(axis.text.x = element_text(angle=90, vjust=0.5, size=11, hjust=1),
axis.title.x = element_blank(),
axis.title.y = element_blank()) +
theme(plot.title = element_text(size = rel(1)))
Я получаю тепловую карту со всеми переменными в алфавитном порядке, а не по расстоянию корреляции. Что я делаю не так ???
Спасибо.