二次元グラフのグラデーション方法
39 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
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
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!