Is it possible to define colormap ranges or merge colormaps?

I am creating a heat map using imagesc with data in [0 100]. I need to emphasize two data ranges as distinct, say [0 5] shades of red and [5 100] colors that are not red.
I'm a proficient MATLAB user/googler generally, but am not sure what vocabulary to use when searching. Any advice - either tips on how to accomplish this or terms to google - would be welcome!
Thanks!

 採用された回答

Chad Greene
Chad Greene 2022 年 8 月 25 日

1 投票

Try concatenating colormaps, like this. Below I'm using my cmocean colormaps, which are available on File Exchange, but you can concatenate any RGB arrays.
% Some data
Z = abs(peaks(500));
Z = 100*Z/max(Z(:)); % scaled 0 to 100
figure
imagesc(Z)
cb = colorbar;
% Two colormaps:
col1 = cmocean('amp',6); % 6 shades of red
col2 = parula(95); % 95 shades of parula
% Concatenate colormaps:
col = cat(1,col1,col2);
colormap(col)

1 件のコメント

lstr
lstr 2022 年 8 月 25 日
Thank you so much! This was exactlly what I was looking for!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeColor and Styling についてさらに検索

製品

リリース

R2021b

タグ

質問済み:

2022 年 8 月 25 日

コメント済み:

2022 年 8 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by