9

Rでカラーグラデーションのある曲線を作成するにはどうすればよいですか。このここに画像の説明を入力してください炎を見てください。

そのように見えるはずです。正規曲線を作成してから別の正規曲線を作成しようとしましたが、技術的には、正規曲線が下がって両側の適切な場所で交差しないため、正規曲線の束でそのような図を作成することはできません。どうすればRでそのような数字を作ることができますか?何か案は?

4

1 に答える 1

25

私がこれまでにできた最高のことは次のとおりです。

 par(bg="black")
 plot(seq(0.15,0.85,by=0.01), 
      5*dbeta(seq(0.15,0.85,by=0.01),10,10 ), 
      type="l" , ylim=c(0,700) )  # this just sets up the plotting framework.

 for( i in 1:200 ) { lines(x= seq(0.15,0.85,by=0.01), 
                           y= i*dbeta(seq(0.15,0.85,by=0.01),10,10 ), 
                     col= colorRampPalette(c("yellow", "orange", "red", "hotpink", 
                             "violet", "blue", "lightblue", "lightgreen", "darkgreen",
                             "black"))(200)[i], 
                      lwd=13) }
 par(bg="white")

そのシリーズの最初に「黒」の色を付けると、全体的な結果に余分な「輝き」が追加されることを発見しましたが、その結果は投稿していません。

ここに画像の説明を入力してください

-----------------

これは私が始めたものであり、その後、以下に表示される連続した近似と微調整があります。

plot(seq(0.15,0.85,by=0.01), 5*dbeta(seq(0.15,0.85,by=0.01),10,10 ), 
            type="l" , ylim=c(0,100))
for( i in seq(0.2, 5) ) { lines(seq(0.15,0.85,by=0.01), 
                     i*5*dbeta(seq(0.15,0.85,by=0.01),10,10 ) ) }

ここに画像の説明を入力してください

色の場合:

plot(seq(0.15,0.85,by=0.01), 5*dbeta(seq(0.15,0.85,by=0.01),10,10 ), type="l" ,
          ylim=c(0,130))
for( i in 1:35 ) {lines(seq(0.15,0.85,by=0.01), i*dbeta(seq(0.15,0.85,by=0.01), 10,10 ), 
                           col=colorRampPalette(c("yellow", "orange", "red", "violet", 
                                        "blue", "lightblue", "lightgreen"))(35)[i],
                   lwd=3) }

ここに画像の説明を入力してください

背景が黒で色が濃く、上部が黒にフェードする場合:

 par(bg = 'black')
 plot(seq(0.15,0.85,by=0.01), 5*dbeta(seq(0.15,0.85,by=0.01),10,10 ), type="l", 
          ylim=c(0,130) )
 for( i in 1:35 ) { lines(seq(0.15,0.85,by=0.01), i*dbeta(seq(0.15,0.85,by=0.01),10,10), 
                          col=colorRampPalette(c("yellow", "orange", "red", "violet", 
                                "blue", "lightblue", "lightgreen", "darkgreen", 
                                 "black")) (35)[i], 
                           lwd=13) }

ここに画像の説明を入力してください

黒へのフェードもサイドの線幅をコントロールしていることに気づきました。私はそれを期待していませんでしたが、それは望ましい機能のようです。ここで取り上げていないもう1つの側面は、透明性を追加する可能性です。RRGB関数にはアルファ引数があります。

名前で色を見つけるための1つの便利なトリック:

grep("purple", colors(), value=TRUE)
 [1] "mediumpurple"  "mediumpurple1" "mediumpurple2" "mediumpurple3" "mediumpurple4"
 [6] "purple"        "purple1"       "purple2"       "purple3"       "purple4"      

勾配を滑らかにするために反復を試している場合は、ylim引数も調整する必要があります。0.5^ 9 * 0.5 ^ 9 / beta(10,10)* [iterations]を選択します。これは、xで最大になるためです。 =0.5。

于 2013-02-21T21:47:57.183 に答える