MATLAB Answers

散布図を描画する際、​各々の点の色を指定す​る方法を教えてくださ​い

2 views (last 30 days)
koji fukumoto
koji fukumoto on 24 Sep 2019
Answered: jiro on 24 Sep 2019
posX = [1, 2, 3, 4, 5, 6];
posY = [4, 5, 6, 7, 8, 9];
scatter(posX, posY, 'r', '.');
というコードだと、全ての点が赤色で描画されますが、例えば
・先頭から3つの点の色は赤、それ以外の点は黒
・X位置が4以下の点は赤、それ以外の点は黒
というように、各点の色を様々な条件に即して指定したいです。
上記コードの「'r'」の引数を、'r'や'k'の文字配列にすればよいと思うのですが、
文字配列の正しい作成方法が今一つ理解できておりません。
イメージとしては(点の数が固定で条件が「先頭から3つの点の色は赤、それ以外の点は黒」の場合)
posX = [1, 2, 3, 4, 5, 6];
posY = [4, 5, 6, 7, 8, 9];
colorAry = ['r','r','r','k','k','k'];
scatter(posX, posY, colorAry, '.');
というようなコードですが、これだと駄目なのはわかっております。
(colorAryが'rrkkkk'になる)
非常に初歩的な質問で恐縮ですが、よろしくお願い致します。

  0 Comments

Sign in to comment.

Accepted Answer

jiro
jiro on 24 Sep 2019
colorAry をn行3列のRGB行列で表現するとよいでしょう。
例えば3番目だけを赤にするには
posX = [1, 2, 3, 4, 5, 6];
posY = [4, 5, 6, 7, 8, 9];
colorAry = [...
0 0 0;
0 0 0;
1 0 0;
0 0 0;
0 0 0;
0 0 0];
scatter(posX, posY, 50, colorAry, 'o', 'filled');
img1.png
4番目以下の点をあかにするには
colorAry = [...
1 0 0;
1 0 0;
1 0 0;
1 0 0;
0 0 0;
0 0 0];
scatter(posX, posY, 50, colorAry, 'o', 'filled');
img2.png

  0 Comments

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!