2017-05-04 63 views
0

绘制我有要在热图的可视化矩阵,具有ggplot,例如在R. geom_tile的数据是在变换矩阵,使得它可以与热图中的R

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,因为它看起来慢很多。谢谢。

+1

''从reshape2' melt'不正是这个 –

+0

@Patronus你能解释一下吗? I和II是列名,A和B是行名。当我使用熔化()时,我只得到一列变量和一列值,并且行名消失。它说类似“没有id变量;使用所有作为度量变量” –

回答

0

你可以显示代码如何创建数据?我尝试编码自己,融化工作正常。

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 
+0

我将数据框转换为矩阵后,它的工作原理。看来,熔解()不能处理数据帧。 –

+0

@ S.Wang事实上,融化可以处理数据帧和矩阵。如果你想将rownames作为id.var,熔化可以从矩阵中捕获rownames,但对于数据框,我相信你必须为rownames创建一个变量,然后使用参数id.var来引用它。有关融化数据框的更多详细信息,请尝试?melt.data.frame –

+1

@ S.Wang您在您的问题中提到“我有一个矩阵” –