首页 文章

热图就像不同数据的不同颜色集的情节

提问于
浏览
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)

结果应该是前三列(来自data1),颜色为红色/蓝色,而第四列应该是黑色/白色 . 如果这有帮助,我可以将数据矩阵转换为颜色matix . 我尝试过heatmap(),但似乎只使用一组颜色 . 在示例中,data1中的1应该绘制为红色,但是data2应该绘制为白色 . 谢谢!

1 回答

  • 2

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

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

相关问题