二次元グラフのグラデーション方法

39 Ansichten (letzte 30 Tage)
航 碓井
航 碓井 am 4 Sep. 2020
Bearbeitet: Akira Agata am 4 Sep. 2020
for x = -5:5
for y = -5:5
T = x+y;
hold on
scatter(x,y,'filled');
end
end
現在,上記のようなコードで二次元グラフを作っています.
このグラフは横軸x,縦軸yなのですが,これをx軸y軸はそのまま,
Tの値によってプロットされた点の色を変え,グラデーションさせたいと思っています.
(実際にはTはもっと複雑な式ですが簡略化しています)
たとえば,T=0のときを中心としてTの値が大きいほど色を濃く,Tが小さいほど色を薄く,といった具合にしたいです.
colorbarを使うことで可能かと考えていたのですがうまくいかないので,どのようにすればよいのか教えていただきたいです.

Antworten (1)

Akira Agata
Akira Agata am 4 Sep. 2020
Bearbeitet: Akira Agata am 4 Sep. 2020
scatter 関数の第4引数で各ポイントの色をコントロールすることができます。例えばご質問のプログラムですと、以下のようになります。
scatter関数の詳細は以下をご参照ください。
% (x,y) 座標を格子状に並べる場合、meshgrid関数を使うと以下のようにforループを使わず書くことができます。
x = -5:5;
y = -5:5;
[xGrid, yGrid] = meshgrid(x,y);
TGrid = xGrid + yGrid;
% 第4引数の値によって各ポイントの色をコントロールします。
% ちなみに第3引数でポイントサイズを制御できます (この例ではdefault値を使うため "[]" としています)。
figure
scatter(xGrid(:),yGrid(:),[],TGrid(:),'filled')
box on
colorbar

Kategorien

Mehr zu カラーマップ finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!