R - 使用 ggplot2 创建的相关热图:如何翻转 y 轴上的标签?

R - Correlation heatmap created with ggplot2: How can I flip the labels on the y-axis?

我发现了使用 ggplot2 创建相关热图的简单方法:

data(attitude) 
library(ggplot2) 
library(reshape2) 
ggplot(melt(cor(attitude)), aes(Var1, Var2)) +   
     geom_tile(aes(fill = value))

但是,这会在矩阵的 反对角线 上产生方差。我希望他们在对角线上。我尝试使用 rev() 命令来完成此操作:

ggplot(melt(cor(attitude)), aes(Var1, rev(Var2))) +
  geom_tile(aes(fill = value))

就图块内部的配色方案而言,效果很好。但 y 轴上的标签保持不变!我该怎么办? 我不想手动输入正确的顺序,因为我的代码应该适用于任意数据集。

我以前遇到过这个问题,在这里找到了答案:

基本上:

data(attitude) 
library(ggplot2) 
library(reshape2) 

ggplot(melt(cor(attitude)), aes(Var1, ordered(Var2, levels =     rev(sort(unique(Var2)))))) +   
geom_tile(aes(fill = value))

这会反转您的 Y 轴

由于您的列名是离散的,关键是将字符串(列名)转换为因子。一旦你有因素,你可以改变顺序。