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

21 ビュー (過去 30 日間)
koji fukumoto
koji fukumoto 2019 年 9 月 24 日
回答済み: Jiro Doke 2019 年 9 月 24 日
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'になる)
非常に初歩的な質問で恐縮ですが、よろしくお願い致します。

採用された回答

Jiro Doke
Jiro Doke 2019 年 9 月 24 日
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 件)

カテゴリ

Help Center および File Exchangeグラフィックス オブジェクトのプログラミング についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!