2013-02-21 19 views
9

Rで色勾配を持つ曲線を作るにはどうすればいいですか?このenter image description hereを見てください。Rプロット - 色勾配を持つ通常の曲線

このようになります。私は通常のカーブを作ろうとしましたが、もう一つのノーマルカーブを作ろうとしましたが、技術的に言えば、普通のカーブでそのようなフィギュアを作ることはできません。 Rでそのような人物を作るにはどうすればいいですか?何か案は?

+0

[0.1]でサポートされているので、私はベータ版を選んだ。 aとbのパラメータを変更することで、好きなように "ピーク時"にすることができます。あなたがそれらを同じに保つ限り、あなたは対称性を維持しますが、 "片側から他に吹かれた"炎が欲しいならば、それらを違うものにすることができます。 –

答えて

23

私がこれまで行うことができました最高です:

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

私はそのシリーズの冒頭で「黒」の色を置くことは、全体的な結果に余分な「輝き」を追加することを発見しました私はその結果を掲載していません。

enter image description here

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

これは私が使用を開始するもので、その後、逐次比較し、下記の登場の調整があります

色については
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)) } 

enter image description here

黒い背景と密色と上部の黒へのフェード210

enter image description here

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

enter image description here

Iは黒態様フェージングもで線幅を制御することに気づい側面。私はそれを期待していなかったが、それは望ましい特徴であるようだ。ここで扱われていないもう1つの側面は、透明性を追加する可能性です。 R RGB関数にはアルファ引数があります。

色を見つけるための一つの有用なトリックがBYNAME:

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

あなたはYLimプロパティの引数を調整も必要になり、その後勾配がよりスムーズにするために、反復して再生している場合:/ 0.5^9 * 0.5^9を選択してくださいベータ(10,10)* [iterations]。これはx = 0.5で最大になるからです。

+0

これは信じられないほどです。ありがとうございました!!! – CodeGuy

+0

私はこれをもう一度投票してもらいたいと思います。 – N8TRO

関連する問題