2

如何扭曲 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)

在此处输入图像描述

我想改变它,这样就没有那么多绿色了。绿色应该和黄色、青色和蓝色一样多。我还想去除洋红色(最右边的“红色”颜色)。我怎么能这样做呢?

4

1 回答 1

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

在此处输入图像描述

编辑

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

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

在此处输入图像描述

于 2013-02-05T22:33:40.630 回答