我有一个只有零和一的矩阵:
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)创建的标签?喜欢使用图像功能,因为行数非常高。
答案 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)