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

57 visualizaciones (últimos 30 días)
航 碓井
航 碓井 el 4 de Sept. de 2020
Editada: Akira Agata el 4 de Sept. de 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を使うことで可能かと考えていたのですがうまくいかないので,どのようにすればよいのか教えていただきたいです.

Respuestas (1)

Akira Agata
Akira Agata el 4 de Sept. de 2020
Editada: Akira Agata el 4 de Sept. de 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

Categorías

Más información sobre カラーマップ en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!