線形2次元plotのグラデーション

18 Ansichten (letzte 30 Tage)
RU
RU am 16 Mär. 2022
Kommentiert: RU am 17 Mär. 2022
plot(x1,y1)
hold on
plot(x2,y2)
plot(x3,y3)
plot(xn,yn)
このように幾つかのグラフを同時に描くとき、1~nまでグラデーションで表すにはどうしたら良いでしょうか?

Akzeptierte Antwort

Atsushi Ueno
Atsushi Ueno am 16 Mär. 2022
>このように幾つかのグラフを同時に描くとき、1~nまでグラデーションで表すにはどうしたら良いでしょうか?
colororder関数で「色の順序」を定義すれば、plot関数で指定しなくても指定色を順に選んで描画してくれます。
グラデーション色は「事前定義されたカラーマップ」を使ったり、独自のRGB色を定義する事も可能です。
n = 100; d = 0.1;
x = repmat((0:d:2*pi)',1,n); % 0~2πの列をn行重ねた行列
y = sin(x) + (d:d:n*d); % 上記のsinを取りy軸方向にちょっとずつずらす
colororder(parula(n)); % 事前定義されたカラーマップ"parula”を使用する例
% colororder(repmat((d:d:n*d)'./(n*d),1,3)) % 独自に作るグラデーション色の例
plot(x,y,'LineWidth',2); % 線の太さ1だと隙間が出来る。太さ2だと綺麗になる
  2 Kommentare
Atsushi Ueno
Atsushi Ueno am 16 Mär. 2022
Bearbeitet: Atsushi Ueno am 16 Mär. 2022
for文で1ラインずつ描画する場合も同様です。下記の様にすれば上記回答と同様に動作します。
figure; hold on
colororder(parula(n));
for i = 1:size(x,2)
plot(x(:,i),y(:,i));
end
>colororder関数colororder(newcolors) は、現在の Figure での色の順序を設定します。
なので、colororder関数の実行後にfigureを作成するとデフォルトの色の順序(7色)に戻ります。
RU
RU am 17 Mär. 2022
丁寧なご回答いただき誠にありがとうございます。
実際のfigureも載せていただきとても分かり易く参考になりました。
今後ともどうぞよろしくお願いいたします。

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu 2 次元および 3 次元プロット finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!