0

我正在尝试在同一个热图中加入不同类型的数据。但是我需要为每个子数据使用不同的颜色集。这是一个例子:

data1 = matrix(c(1:9),nrow=3)
color1 = colorRampPalette(c('red','blue'))(max(data1))
data2 = matrix(sample(c(0:1),12, replace=T),nrow=3)
color2 = colorRampPalette(c('black','white'))(max(data2)+1) # +1 because it starts in 0
data = cbind(data1,data2)
# I want to join the following two images
image(t(data1),col=color1)
image(t(data2),col=color2)

结果应具有红色/蓝色的前 3 列(来自 data1),从第 4 列到最后的列应为黑色/白色。如果有帮助,我可以将数据矩阵转换为颜色矩阵。我尝试了 heatmap(),但似乎只使用一组颜色。在示例中,data1 中的 1 应绘制为红色,但 data2 中的 1 应绘制为白色。谢谢!

4

1 回答 1

2

您不能两次使用相同的颜色索引。但是,您可以通过向元素添加合适的偏移量data2并连接数据和颜色来解决此问题,如下所示:

image(t(cbind(data1,data2+length(data1)+1)), col=c(color1, color2))
于 2013-10-21T09:45:39.557 回答