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 に答える