扭曲R中的彩虹

时间:2013-02-05 21:42:46

标签: r plot

如何扭曲R中的默认彩虹。例如,看看这段代码及其产生的图像:

x = seq(0,50,by=0.005)
y = runif(length(x),2,5)
colors = rainbow(length(x))
plot(x,y,cex=0.2,pch=16,col=colors)

enter image description here

我想改变它,以便没有那么多绿色。应该有绿色和黄色,青色和蓝色一样多。我也想删除洋红色(最右边的“红色”)。我怎么能这样做?

1 个答案:

答案 0 :(得分:9)

如果你明确地从调色板生成中跳过绿色,那么你就会接近我的想法:

par(mfrow=c(2,1))
par(mar=c(2,1,3,1))

x = seq(0,50,by=0.005)
y = runif(length(x),2,5)
colors = rainbow(length(x))
plot(x,y,cex=0.2,pch=16,col=colors)
title(main="old")

crp.rg <- colorRampPalette(c("red","yellow","cyan","blue","red"))
colors = crp.rg(length(x))
plot(x,y,cex=0.2,pch=16,col=colors)
title(main="new")

enter image description here

修改

您也可以手动编辑每个颜色过渡以使它们具有不同的长度:

par(mfrow=c(2,1))
par(mar=c(2,1,3,1))

x = seq(0,50,by=0.005)
y = runif(length(x),2,5)
colors = rainbow(length(x))
plot(x,y,cex=0.2,pch=16,col=colors)
title(main="old")


crp.step1 <- colorRampPalette(c("red","yellow"))
crp.step2 <- colorRampPalette(c("yellow","green"))
crp.step3 <- colorRampPalette(c("green","cyan"))
crp.step4 <- colorRampPalette(c("cyan","blue"))
crp.step5 <- colorRampPalette(c("blue","red"))

colors <-   c(
           crp.step1(2666),
           crp.step2(1000),
           crp.step3(1000),
           crp.step4(2666),
           crp.step5(2667)
        )

plot(x,y,cex=0.2,pch=16,col=colors)
title(main="new")

enter image description here