如何在R中叠加水平图?

时间:2012-04-25 15:32:18

标签: r graphics imaging

在R中,假设您希望在医学成像中提供图像背景的统计数据

example produced with Mango

每个图层都是不同的矩阵。 这是一个无意义的例子:

  • volcano灰色
  • B<- (volcano>160) * rnorm(prod(dim(volcano)) in 热色。

你会怎么做?

1 个答案:

答案 0 :(得分:3)

image功能可以执行此操作,只需设置第二组颜色的透明度并使用add=TRUE覆盖它。任何缺失值都将是完全透明的,您可以为其他颜色设置alpha级别(当然,您的图形设备必须支持部分透明度才能使其工作)。这是一个简单的例子:

A <- t(volcano)[ncol(volcano):1,]
B <- (A>160) * rnorm(prod(dim(A)) )

B[ A < 120 ] <- NA  # show some complete transparency

image(A, col=grey( seq(0,1,length.out=12) ) )  # initial plot
hc <- sub('FF$','77',heat.colors(12)) # convert heat colors to have an alpha
image(B, add=TRUE, col=hc)  # overlay the new plot