变换矩阵,使其可以用R中的热图绘制
我有一个矩阵,我想在热图中可视化,带有ggplot,比如R中的geom_tile。数据以变换矩阵,使其可以用R中的热图绘制,r,ggplot2,tidyverse,R,Ggplot2,Tidyverse,我有一个矩阵,我想在热图中可视化,带有ggplot,比如R中的geom_tile。数据以 I II A 1 2 B 3 4 但是,要使用ggplot,我需要将此矩阵转换为如下格式的数据帧: Var1 Var2 Value A I 1 A II 2 B I 3 B II 4 如何将矩阵转换为这种格式,以便使用ggplot?我不想要像gplot这样的可视化软件包,因为它看起来慢多了。谢谢。你
I II
A 1 2
B 3 4
但是,要使用ggplot,我需要将此矩阵转换为如下格式的数据帧:
Var1 Var2 Value
A I 1
A II 2
B I 3
B II 4
如何将矩阵转换为这种格式,以便使用ggplot?我不想要像gplot这样的可视化软件包,因为它看起来慢多了。谢谢。你能展示一下你如何创建数据的代码吗?我试着自己编写代码,melt很好用
a = matrix(c(1, 3, 2, 4), 2, dimnames = list(c('A', 'B'), c('I', 'II')))
melt(a)
这就是我得到的:
Var1 Var2 value
1 A I 1
2 B I 3
3 A II 2
4 B II 4
melt
fromrestrape2
的功能完全相同this@Patronus你能再解释一下吗?I和II是列名,A和B是行名。使用melt()时,变量只有一列,值只有一列,行名消失。它的意思是“没有id变量;使用all作为度量变量”,在我将数据帧转换为矩阵后,它就工作了。看起来melt()无法处理数据帧。@S.Wang事实上melt可以处理数据帧和矩阵。如果您希望rownames作为id.var,melt可以从矩阵中捕获rownames,但是对于数据帧,我认为您必须为rownames创建一个变量,然后使用参数id.var引用它。有关融化数据帧的详细信息,请尝试?melt.data。frame@S.Wang你在问题中说“我有一个矩阵”