为了突出两个相同大小的矩阵之间的差异,我想以半透明的方式显示两者叠加,其中一个矩阵使用红色阴影,另一个矩阵使用绿色阴影(在它们相同的地方产生黄色)。
只显示我有一个矩阵
library(grDevices)
matr=replicate(10, rnorm(20,mean=0.5,sd=0.1))
colpalette=colorRampPalette(c("black", "red"))
image(matr^0.2,col = colpalette(1000),useRaster=T)
有没有人知道我应该如何调整它以显示两个矩阵matr1
和matr2
叠加在红色/绿色中?
另外,对结果图像的亮度和对比度进行一些控制的最佳方法是什么?有没有比我现在使用的力量变换更好的方法?
干杯汤姆
Ha 刚刚找到了一个简单的解决方案,首先计算两个矩阵之间的 log2(差值),并使用带有零中断的调色板绘制它。这是有道理的,对吧?
library(grDevices)
matr1=replicate(10, rnorm(20,mean=0.5,sd=0.1))
matr2=replicate(10, rnorm(20,mean=0.5,sd=0.1))
matrdiff=log2(matr1/matr2)
nbcolors=1000
colpalette=colorRampPalette(c("red","yellow","green"))(nbcolors)
breaks = c(seq(min(matrdiff), 0, length.out=nbcolors/2), 0,
seq(0,max(matrdiff), length.out=nbcolors/2))
image(matrdiff,col=colpalette,breaks=breaks,useRaster=T)