【问题标题】:Plot a matrix of colour hex codes绘制颜色十六进制代码矩阵
【发布时间】:2013-10-09 18:18:24
【问题描述】:

我正在尝试绘制一个在三种颜色之间渐变的框。它应该是左上角的红色,右上角的蓝色和底部的白色。

这是我尝试过的:

##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")

【问题讨论】:

  • This 看起来非常接近您想要做的事情。也许这会有所帮助?
  • 这看起来完全不同,足以让我暂时放弃 - 如果我找不到其他解决方案,我会尝试。

标签: r image hex


【解决方案1】:
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 很好的答案,很高兴回答你自己的问题!
猜你喜欢
  • 2011-09-20
  • 2011-10-25
  • 1970-01-01
  • 2017-10-01
  • 2014-05-02
  • 2019-11-28
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多