heatmap の使い方について

27 ビュー (過去 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 Center および File Exchangeデータ分布プロット についてさらに検索

タグ

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!