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

18 views (last 30 days)
koji fukumoto
koji fukumoto on 24 Sep 2019
Answered: Jiro Doke 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'になる)
非常に初歩的な質問で恐縮ですが、よろしくお願い致します。

Accepted Answer

Jiro Doke
Jiro Doke 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

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!