绘制一个颜色十六进制代码矩阵

3

我想绘制一个能够在三种颜色间渐变的方框。它应该在左上角为红色,在右上角为蓝色,在底部为白色。

这是我尝试过的:

##Change from red to blue as move left to right, fade to white as move from top to bottom

data<-matrix(1:(255*255),ncol=255,nrow=255)

rb<-colorRampPalette(c("red","blue"))(255)

colsMat<-matrix(nrow=255,ncol=255)

for(col in rb){
  idx<-which(rb==col)
  colsMat[idx,]<-colorRampPalette(c(col,"blue"))(255)
}

colsVec<-as.vector(colsMat)

image(data,col=colsVec,xaxt="n",yaxt="n")

我可以将它从红色变为蓝色(但需要添加白色)如下所示:
data<-matrix(1:255,ncol=255,nrow=255)
image(data,col=rb,xaxt="n",yaxt="n")

这个链接看起来非常接近你想要做的事情。也许可以帮到你? - Simon O'Hanlon
那看起来有点不同,让我暂时放弃了 - 如果我找不到其他解决方案,我会尝试那个。 - Jessica B
1个回答

3
rb<-colorRampPalette(c("red","blue"))(255)
trans<-sapply(seq(from=0,to=1,length.out=255),function(op) rgb(1,1,1,op))

image(matrix(1:255,ncol=255,nrow=255),col=rb,xaxt="n",yaxt="n")
par(new=T)
image(t(matrix(255:1,ncol=255,nrow=255)),col=trans,xaxt="n",yaxt="n")

1
+1 很棒的答案,自己回答问题也很好! - Simon O'Hanlon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接