MATLAB Answers

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

80 ビュー (過去 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を使うことで可能かと考えていたのですがうまくいかないので,どのようにすればよいのか教えていただきたいです.

  0 件のコメント

サインインしてコメントする。

回答 (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

  0 件のコメント

サインインしてコメントする。

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!