首页 > 解决方案 > ggplot2热图变量顺序

问题描述

我正在尝试使用 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)))

我得到的是一个所有变量按字母顺序排列的热图,而不是相关距离。我究竟做错了什么???

谢谢你。

标签: rggplot2heatmapcorrelation

解决方案


推荐阅读