在R中创建可比较的热力图

3

我想在 R 中创建 2 个具有可变值的热图。我希望颜色和值被缩放,以便两个热图的值可以进行比较。目前我正在使用 gplot 包中的 heatmap.2。

MyHeatMap <- heatmap.2(MyData, trace="none", col=greenred)

我的数据以数字矩阵的形式存在。我有两个这样的矩阵,其中数值范围略有不同,我想为两个矩阵创建优质的热图(不一定要使用示例包)。


请定义您所说的“质量”,并澄清是否希望在这些热图中,两个矩阵中相同的数值应该产生相同的颜色。 - IRTFM
@DWin:我尝试了一些其他的热图函数,使用了其他的包,比如made4,其中数据都是自动缩放的,但是生成的热图颜色变化不大(似乎主要是单调的绿色和红色)。我希望在两个热图中,相同的数值在颜色上能够保持一致。 - user2165857
我没有安装gplots,但也许这里展示的策略会有所帮助。链接 - Josh O'Brien
1个回答

6

我在自己的分析中多次遇到了这个问题,以下是我建议如何处理它的方法。

首先,将你的绿红色变量设置为256种颜色,即greenred(256)。

然后,创建一个break变量,其中包含你想要将这256种颜色分成的数字范围,用于两个热图(长度将比颜色向量的长度多一个)。例如,如果你想要从绿色到红色的传播范围为-1到1,你可以这样做:

pairs.breaks = seq(from=-1,to=1,length.out=257)

然后,在调用您的热度图时,使用
MyHeatMap1 <- heatmap.2(MyData1, trace="none", col=greenred(256), breaks=pairs.breaks)
MyHeatMap2 <- heatmap.2(MyData2, trace="none", col=greenred(256), breaks=pairs.breaks)

这应该会生成两个热图,使用相同的颜色比例尺但具有不同的数据集。
希望这可以帮到您!
Ron

美观简单的解决方案! - Herman Toothrot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接