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

18 visualizzazioni (ultimi 30 giorni)
koji fukumoto
koji fukumoto il 24 Set 2019
Risposto: Jiro Doke il 24 Set 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'になる)
非常に初歩的な質問で恐縮ですが、よろしくお願い致します。

Risposta accettata

Jiro Doke
Jiro Doke il 24 Set 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

Più risposte (0)

Categorie

Scopri di più su グラフィックス オブジェクトのプログラミング in Help Center e File Exchange

Tag

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!