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

조회 수: 49 (최근 30일)
航 碓井
航 碓井 2020년 9월 4일
편집: Akira Agata 2020년 9월 4일
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を使うことで可能かと考えていたのですがうまくいかないので,どのようにすればよいのか教えていただきたいです.

답변 (1개)

Akira Agata
Akira Agata 2020년 9월 4일
편집: Akira Agata 2020년 9월 4일
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

카테고리

Help CenterFile Exchange에서 カラーマップ에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!