我正在尝试在同一个热图中加入不同类型的数据。但我需要为每个子数据使用不同的颜色集。 这是一个例子:
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)
结果应该有前三列(来自data1),颜色为红色/蓝色,而第四列应该是黑色/白色。 如果有帮助的话,我可以将数据矩阵转换为颜色matix。我尝试过heatmap(),但似乎只使用一组颜色。 在示例中,data1中的1应该绘制为红色,但是data2应该绘制为白色。 谢谢!
答案 0 :(得分:2)
您不能两次使用相同的颜色索引。但是,您可以通过向data2
的元素添加合适的偏移量来解决此问题,并按如下方式连接数据和颜色:
image(t(cbind(data1,data2+length(data1)+1)), col=c(color1, color2))