heatmap の使い方について
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
現在、181行136列のデータ群Zをheatmapを用いてグラフを作成しています。
heatmap(Z)とすると、ヒートマップのx、yの値がデータ群のインデックスになってしまいます。(1~181,1~136)
x,yの値をそれぞれ‐90~90、‐90~45として表示したいのですが、方法はありますでしょうか。
0 Kommentare
Antworten (1)
Atsushi Ueno
am 29 Nov. 2023
> ヒートマップのx、yの値がデータ群のインデックスになってしまいます(1~181,1~136)
インデックス値の指定が無く自動作成されたからです。heatmap関数の事例を参考にカスタム軸を作成します。「xvalues/yvalues — x/y 軸に沿って表示される値」として数値配列の入力が可能なので、下記事例の様な使い方ができます。
181行136列だと軸ラベルがギュウギュウに詰まって表示されてしまうので、とりあえず-10~10の範囲を表示しました。
Z = rand(181,136); % 181行136列のデータ群Z
x = -90:90;
y = -90:45; % x,yの値をそれぞれ‐90~90、‐90~45として表示したい
heatmap(y,x,Z);
xlim([-10,10]);
ylim([-10,10]);
3 Kommentare
Akira Agata
am 30 Nov. 2023
+1
heatmap だと @Atsushi Ueno さん回答のとおり「軸ラベルがギュウギュウに詰まって表示されて」しまいます。別の方法として、imagesc を使うというのはいかがでしょうか?ご参考までに以下に例を示します。
% サンプルデータ (181行136列)
I = imadjust(imgaussfilt(rand(181, 136), 5));
% X, Y軸の範囲
x = -90:90;
y = -90:45;
% 結果を表示
figure
imagesc(x, y, I)
colormap(sky) % heatmapとあわせるため
colorbar
ax = gca;
ax.YDir = "normal"; % Y軸の方向を通常どおりとするため(不要であれば削除して下さい)
Siehe auch
Kategorien
Mehr zu データ分布プロット finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
