我有以下用于绘制一组时间序列的R代码,这些时间序列是规范化的[0,1]
。我希望每条线都具有颜色强度,使得所有值<= 0.5
都具有蓝色阴影,> 0.5
具有橙色/黄色阴影。这就是我现在所拥有的:
data <- SOME_DATA
for(i in 1:length(data)){
y <- data[[paste("I",i,sep = "")]]
x <- 1:length(y)
lo <- loess(y~x)
ylim <- range(seq(-1,1,by=0.5))
if(i==1){
plot(x,y,ylim = ylim,main = "Some title",col = ifelse(y[1] < 0,'red','green'),ylab = "intensity",xlab = "time steps")
}
lines(predict(lo),lwd=2,ylim = ylim,col = ifelse(y[1] < 0,rgb(1,0,0,0.2),rgb(0,1,0,0.2)))
}
我怎样才能实现上述目标?
由于
答案 0 :(得分:1)
使用this解决方案,您可以执行以下操作:
data <- data.frame(x= runif(100), y = runif(100))
color.gradient <- function(x, colors=c("blue","white","red"), colsteps=100) {
return( colorRampPalette(colors) (colsteps) [ findInterval(x, seq(min(x),max(x), length.out=colsteps)) ] )
}
plot(data$x, data$y, col= color.gradient(data$x))
答案 1 :(得分:0)