MATLAB/tiledlayoutでタイルごとにcolormapを設定

tiledlayoutを用いて図を作るときにcolormapを使うと,各タイルでcolormap統一されてしまう.

この時は,軸ごとにcolormapを定めるとOK.ax = nexttile;でタイルの軸ハンドルを取得してcolormap(ax, cmap)でタイルのカラーマップを設定する.

以下はサンプル

 

% カラーマップの定義
cmap1 = hot;
cmap2 = cool;
cmap3 = gray;

% データの生成
x = -3:0.1:3;
y = -3:0.1:3;
[X, Y] = meshgrid(x, y);
Z1 = peaks(X, Y);
Z2 = peaks(X-2, Y-2);
Z3 = peaks(X+2, Y+2);

% タイルレイアウトの作成
tiledlayout(1,3);

% タイル1にプロットを配置してカラーマップを設定
ax(1) = nexttile;
imagesc(Z1);
colormap(ax(1), cmap1); % ここでタイル1のカラーマップを指定
axis tight equal

% タイル2にプロットを配置してカラーマップを設定
ax(2) = nexttile;
imagesc(Z2);
colormap(ax(2), cmap2); % ここでタイル2のカラーマップを指定
axis tight equal

% タイル3にプロットを配置してカラーマップを設定
ax(3) = nexttile;
imagesc(Z3);
colormap(ax(3), cmap3); % ここでタイル2のカラーマップを指定
axis tight equal

結果

 

おまけ

Chat-GPTに聞いた時の結果.一発では正解のスクリプトを書けなかったようだが,2回目でサンプルのようなスクリプトを書いてきた.