heatmap の使い方について

조회 수: 24 (최근 30일)
豪斗 中馬
豪斗 中馬 2023년 11월 29일
댓글: 豪斗 中馬 2023년 11월 30일
現在、181行136列のデータ群Zをheatmapを用いてグラフを作成しています。
heatmap(Z)とすると、ヒートマップのx、yの値がデータ群のインデックスになってしまいます。(1~181,1~136)
x,yの値をそれぞれ‐90~90、‐90~45として表示したいのですが、方法はありますでしょうか。

답변 (1개)

Atsushi Ueno
Atsushi Ueno 2023년 11월 29일
> ヒートマップの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
Akira Agata
Akira Agata 2023년 11월 30일
+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軸の方向を通常どおりとするため(不要であれば削除して下さい)
豪斗 中馬
豪斗 中馬 2023년 11월 30일
ありがとうございます。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 データ分布プロット에 대해 자세히 알아보기

태그

제품


릴리스

R2023a

Community Treasure Hunt

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

Start Hunting!