ggplot:2D频率直方图的热图

时间:2014-09-13 17:29:17

标签: r ggplot2

我的输入数据如下:

AA  36C     37T   38T   
36C 17935   3349  16843 
37T 3349    4     5690  
38T 16843   5690  11    

我希望以我拥有nxn图块的方式可视化数据,并且图块(0,0)的颜色将基于联系人36C-36C的数字(在这种情况下为17935),图块(0) ,1)基于联系人36C-37T的数量等。我认为geom_tile应该完成这项工作,但我不知道该怎么做。

当我读到数据时,我得到了

  

data = read.table(" test.tbl",header = T)

> str(data)
'data.frame':   3 obs. of  4 variables:
$ AA  : Factor w/ 3 levels "36C","37T","38T": 1 2 3
$ X36C: int  17935 3349 16843
$ X37T: int  3349 4 5690
$ X38T: int  16843 5690 11

之后我不知道如何继续并告诉ggplot绘制矩阵。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

抱歉,在询问之前应该做更多的研究。

它通过融化数据框架起作用。

> library(reshape2)
> melt(data)
Using AA as id variables
AA variable value
1 36C     X36C 17935
2 37T     X36C  3349
3 38T     X36C 16843
4 36C     X37T  3349
5 37T     X37T     4
6 38T     X37T  5690
7 36C     X38T 16843
8 37T     X38T  5690
9 38T     X38T    11

ggplot(data_new, aes(x = variable, y = AA)) + geom_tile(aes(fill = value))然后提供所需的结果。