图形包的R图像功能添加轴标签

时间:2013-07-10 11:14:51

标签: image r heatmap

我有一个只有零和一的矩阵:

                  acc062_1 acc062_2 acc003_1 acc003_2 acc039_1 acc039_2
SL2.40ct15849        0        1        0        0        1        0
SL2.40ct15848        0        0        0        0        0        0
SL2.40ct15847        0        0        0        0        0        0
SL2.40ct15846        0        0        0        0        0        0
SL2.40ct15845        0        0        0        0        0        0
SL2.40ct15844        1        1        1        1        1        1
SL2.40ct11061        0        0        0        0        0        0
SL2.40ct11060        0        0        0        0        0        0
SL2.40sc04607        1        1        1        1        1        1
SL2.40ct11212        0        0        0        0        0        0
SL2.40ch12           1        1        1        1        1        1

使用此矩阵,我可以使用图形包的图像功能创建图像。使用此代码:

image(x)

这给了我一个完全符合预期的图像,红色为0,白色为1.但x轴和y轴上的标签不是rownames和列名。这是介于0和1之间的范围,如何将这些更改为我的列名?

使用热图功能时:

heatmap(x)

标签是x轴和y轴的列名和rownames。但现在只有零或只有一个的所有行都是blanco。仅按预期绘制带有变体的读数。 (也完成了聚类,但我可以关闭此功能)

有谁知道如何使用image(x)创建图像并获取使用heatmap(x)创建的标签?喜欢使用图像功能,因为行数非常高。

1 个答案:

答案 0 :(得分:7)

我认为你应该在没有轴(参数xaxt和yaxt)的情况下运行image(),然后添加带有指定标签的轴:

par( mar = par( "mar" ) + c( 2, 4, 0, 0 ) )
image( x, xaxt= "n", yaxt= "n" )
axis( 1, at=seq(0,1,length.out=ncol( x ) ), labels= colnames( x ), las= 2 )
axis( 2, at=seq(0,1,length.out=nrow( x ) ), labels= rownames( x ), las= 2)