【发布时间】:2020-12-20 18:54:03
【问题描述】:
我有几千个矩阵,如下所示:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 560.5681 526.3265 501.4808 447.4124 475.3496 487.1298
[2,] 556.7537 525.3711 460.2989 412.7424 478.1070 506.8339
[3,] 570.1362 534.5701 461.2309 476.0936 509.1480 491.3332
[4,] 564.1036 538.4911 593.1357 573.0606 532.7869 496.5737
[5,] 606.3170 583.7723 536.8325 614.4326 514.1198 427.6375
[6,] 555.8331 576.4716 642.0229 617.1337 620.3885 483.4476
[7,] 790.4830 790.4830 790.4830 790.4830 790.4830 790.4830
[8,] 790.4830 790.4830 790.4830 790.4830 790.4830 790.4830
[9,] 790.4830 790.4830 790.4830 790.4830 790.4830 790.4830
[10,] 790.4830 790.4830 790.4830 790.4830 790.4830 790.4830
我想构建一个足够灵敏的热图,为每个单元格提供自己的阴影。我尝试了以下方法:
heatmap(irradiances_shaded_ready_to_use_FINAL[[160]][[1200]], Colv=NA,
Rowv=NA, xlab="", ylab="Irradiance",
main="Snapshot 1200 day 160",
col=colorRampPalette(brewer.pal(64, "Oranges"))(3))
...但是错误/警告消息是:
Warning message:
In brewer.pal(64, "Oranges") :
n too large, allowed maximum for palette Oranges is 9
Returning the palette you asked for with that many colors
请注意:在我上面粘贴的上述矩阵中,有几个重复的值,但一般情况并非如此。我有 500,000 个这样的矩阵,我想对其中的一小部分样本进行热图,但总的来说,我希望在大多数情况下会有 64 个唯一值。
所以基本上:我需要一个调色板来说明一个由 64 个唯一值组成的矩阵。如果这是一个如此简单的问题,我很抱歉。
@jay.sf 建议我使用“heat.colors(等)”,但这对我不起作用。请参阅下面的热图:前四行没有阴影,而它们应该是。
【问题讨论】:
-
col=heat.colors(64)有什么问题? -
一个好主意,但不幸的是它无法为我想要的所有单元格着色。我将发布一张图片作为对原始问题的修改。
-
当您查看矩阵时,在热图未着色的相应行中,根本没有变化,即没有“热量”,也许这可能是您的问题。当您执行
col="red"时,该区域甚至会保持白色。 -
也许我在这里选择了错误的示例,但就像我说的那样,大约有 50 万个这样的矩阵,即使每个单元格不同的矩阵示例,我也会遇到这个问题。你可以说调色板不够灵敏。
-
知道了!
heatmap默认为scale="row"您可能想要"none",请参阅下面的答案。