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

15 次查看(过去 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 CenterFile Exchange 中查找有关 非線形最適化 的更多信息

标签

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!