Highlight cells in heatmap

19 ビュー (過去 30 日間)
Ilyass Boukhari
Ilyass Boukhari 2020 年 11 月 26 日
コメント済み: Ilyass Boukhari 2020 年 12 月 1 日
I created a heatmap where each cell represents a temperature value using the commands:
cdata = [values of temperature]
xvalues = [0,1,2,3,etc.]
yvalues = [0,1,2,3,etc.]
h = heatmap(xvalues,yvalues,cdata)
I need to:
  • command to highlight cells over a limit (for example 500)
  • Highlight cells within a given range (for example 300 to 800)
It is not important how the cells are highlighted, it can be a different colour (like green or blue), or a cross X on top of the cells.
Thanks for the help

採用された回答

Rishik Ramena
Rishik Ramena 2020 年 12 月 1 日
You can do so by creating a custom colormap. The code below shows a simple implementation.
xvalues = 1:5;
yvalues = 1:5;
cdata = randi(20,[5,5]); % range of values in cells < 20
cmap = [repmat([1 0 0],5,1)
repmat([1 1 1],5,1) % highlight all cells with values from 5-10 with white
repmat([0 0 0],10,1)]; % highlight all cells > 10 with black
heatmap(1:5,1:5,randi(20,[5 5]),'Colormap',cmap);
  3 件のコメント
Rishik Ramena
Rishik Ramena 2020 年 12 月 1 日
編集済み: Rishik Ramena 2020 年 12 月 1 日
The second argument for repmat denotes the number of rows to be repeated for the RGB vector given in its first argument. So the cmap contains rows of RGB values which are equal in number to the range of values in the cdata (max-min). For visualisation, try imagining filling the colors on the colorbar from the bottom while creating a custom colormap.
max_val = max(cdata(:)) % get the max value from cdata
cmap = [repmat([1 0 0],200,1) % first 200 rows (0-199)
repmat([1 1 1],750-200,1) % 200-749
repmat([0 0 0],max_val-750,1)]; % >= 750
Ilyass Boukhari
Ilyass Boukhari 2020 年 12 月 1 日
All clear! Thank you for your help!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Distribution Plots についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by