2016-07-25 14 views
2

Matlabの学習を始めたばかりなので、散乱プロットの色を黄色から赤まで変える簡単な方法があります。私は黄色から赤に徐々にcはある特定の色から別の色への大学院のmatlabプロット

t=linspace(0,1,100); 
c='y' .* (1-t) + 'r' .* t; 

は今、これが何かをするRGBトリプレットとして定義されますが、それは本当に与えていない

scatter(x,y,100,c) 

の色が変化コマンドを使用して考えていました。より簡単な方法やこれを自動的に行うカスタム機能さえあれば、それは素晴らしいことです。ありがとう。

答えて

1

色はそれより硬いです!色空間は3Dボリュームであるため、色から別の色へ行くための無限の可能なパスがあります。すべての可能な色空間の中で、新しい色や色の作成に対処するために使用できる最悪のものはRGBです!

これは、[123, 213, 42]がどの色であるかを知る方法がなく、一般に[123, 213, 0][123, 213, 255]の間の色ではないためです。

あなたのケースに最適なオプションは、HSVカラースペースです。最初の値の色相はすべての色情報を含み、残りの2つは彩度と値または色の強度です。あなたが話している色を知っている最初の価値を読んでいるだけです。

HSV、赤はH=0であり、黄色はH=60度であり、H=60*255/360はuint8であり、H=60/255は2倍である。あなたに適したS値とV値を選択してください。 S = 255、V = 255とする。次に:

H=linspace(0,60/255,100); 
HSV=[H;ones(size(H));ones(size(H))]; 
rgb=hsv2rgb(HSV); 

色のカラーマップが表示されます。次に、それらを適切に割り当てる必要がありますscatter

+0

ご返信ありがとうございます。これは素晴らしいですが、 'rgb'には正しい次元がありません。変数 'HSV'には100のトリプレットがありますが、' rgb'には3つしかありません。私は、 'hsv2rgb'コマンドがterm-wiseに適用され、RGBで100個のトリプレットを生成することを期待しました。何か不足していますか? – learner271

+0

@ learner271はい。多分あなたが逃しているいくつかのサイズや何かがあります –

関連する問題