【发布时间】:2017-05-10 16:50:53
【问题描述】:
我在一个文件中有一个类似于以下的矩阵。
1 2 3 4 5 6 7 8 9 10 11 12
4 5 5 6 7 8 9 10 11 12 13 3
(此数据仅用于演示。我的实际数据非常大,此处包含。) 我想使用 ggplot2 绘制它的热图。这是我使用的代码:
T=read.table("file")
library(ggplot2)
library(reshape2)
Y=melt(as.matrix(T))
ggplot(Y)+
geom_tile(aes(x=Var2, y=Var1,fill = value))
问题在于 Var2 具有字母数字值,因此ggplo2 以字典方式对其进行排序。
我如何告诉 R 像给行一样给列提供数字标签? (或者可能有更好的解决方案?)
【问题讨论】:
-
你应该避免使用
T作为变量名,因为它在R中也代表TRUE -
我无法复制。当我运行您的示例时,
Y$Var2是Factor,而不是character,并且它的levels(Y$Var2)正确排序为[1] "V1" "V2" "V3"而不是[1] "V1" "V10" "V11" -
将 var2 保存为因子并根据需要对其级别进行排序。
-
@raistlin 你能详细说明一下吗?