2013-10-21 31 views
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)在颜色红/蓝,和从第四到最后列应在黑/白。 如果有帮助,我可以将数据矩阵转换成颜色矩阵。我尝试了heatmap(),但似乎只使用一组颜色。 在此示例中,data1中的1应绘制为红色,但data2应绘制为白色。 谢谢!

回答

2

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

image(t(cbind(data1,data2+length(data1)+1)), col=c(color1, color2)) 
+0

伟大的!这就是我一直在寻找的! – user31168

+0

不客气!如果你将这个答案标记为解决了问题,那将会很好。 :) – fotNelton