二进制R热图仍然显示梯度
我正试图为R中的二进制数据矩阵(11x~1500)绘制一个热图 矩阵“y”看起来像这样二进制R热图仍然显示梯度,r,heatmap,R,Heatmap,我正试图为R中的二进制数据矩阵(11x~1500)绘制一个热图 矩阵“y”看起来像这样 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [1,] 0 0 0 0 1 1 1 1 1 1 1 1 1 [2,] 0 0 1 0 0 1 0 0 0 0 0
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] 0 0 0 0 1 1 1 1 1 1 1 1 1
[2,] 0 0 1 0 0 1 0 0 0 0 0 0 1
[3,] 0 0 0 0 0 1 1 1 1 0 0 1 1 ...etc...
我使用的是默认的距离和聚类函数,但出于某种原因,我的热图显示了颜色的渐变。我也尝试过使用二进制距离函数,尽管也会出现类似的渐变。这是由于每个样本之间的距离导致样本缺乏相似性吗?以下是热图的图像:
我觉得这是因为我对默认距离和聚类函数如何重新排序数据缺乏了解。如何解释这些结果?正如@Joran所指出的,
scale
参数是应该遵循的:
(注意:由于您没有提供完整的数据集,我降低了维度并生成了随机数据)
颜色由col
选择,如果你想要简单的黑白,你可以做col=c(“黑”、“白”)
,但你也可以让事情更有趣:
x <- matrix(sample(c(0, 1), 15*15, replace = TRUE), nrow = 15)
heatmap(x, scale = "none", Rowv = NA, Colv = NA, col = cm.colors(2), main = "HeatMap Example")
x您可能只需要仔细阅读热图。请看scale
参数。@lennart这是否回答了您的问题?如果是,请接受,如果不是,我该如何改进它?嗨,姆莱格,我知道现在问这个问题已经很晚了。。但请尝试澄清我的疑问。如果我们希望行名在顶部,列名在右侧..代码中的修改是什么?@ThulasiR您必须创建一个新函数,以不同的方式写入这些行axis(1,1L:nc,labels=labCol,las=2,line=-0.5,tick=0,cex.axis=cexCol)
更改为:axis(3,1L:nc,labels=labCol,las=2,line=-0.5,tick=0,cex.axis=cexCol)
再次对回复延迟表示抱歉..感谢您的解释这给出了行的反向排序--您能解决这个问题吗?
x <- matrix(sample(c(0, 1), 15*15, replace = TRUE), nrow = 15)
heatmap(x, scale = "none", Rowv = NA, Colv = NA, col = cm.colors(2), main = "HeatMap Example")