Display values of each element in imagesc

147 次查看(过去 30 天)
I have a 16 x 16 array of values between 0 and 40. I would like to display this using imagesc, but I would also like to superimpose the decimal value of each element in its corresponding square. I would end up with a 16 x 16 array of colored (per mapping) squares, each with the square's value in decimal text. Is there an easy / convenient way to do this?
If there was a version of "disp" that I could apply to a figure after imagesc that might work, but I can't find one.
Thanks

采纳的回答

Chunru
Chunru 2021-10-11
c = randi([0 40], [16 16]);
heatmap(c);
colormap(jet(512))

更多回答(1 个)

Walter Roberson
Walter Roberson 2021-10-11
Is there an easy / convenient way to do this?
No. But it can be done.
Note: there is no one text font color that will contrast nicely with all of the underlaying colors -- not unless you colormap() in a different colormap such as copper() that you can find a simple text color for.
A = randi([0 40], 16, 16); %sample data
[R, C] = ndgrid(1:size(A,1), 1:size(A,2));
R = R(:); C = C(:) - 1/4;
%rows are Y values, columns are X values !
imagesc(A)
vals = A(:);
mask = vals <= 20;
text(C(mask), R(mask), string(vals(mask)), 'color', 'w')
text(C(~mask), R(~mask), string(vals(~mask)), 'color', 'k')
A
A = 16×16
28 33 29 4 1 22 13 4 7 6 16 27 34 39 7 11 40 14 37 8 14 25 10 12 6 40 0 40 27 28 29 21 6 3 16 31 35 3 31 23 7 18 40 19 39 2 7 6 15 36 7 6 1 5 18 33 27 25 22 14 14 8 16 38 27 7 39 37 11 15 28 1 4 32 8 37 7 38 29 32 0 3 32 34 10 9 1 26 17 17 19 5 15 16 6 9 37 4 13 10 34 23 29 37 36 16 19 26 4 5 19 37 14 23 32 15 5 11 26 37 4 3 14 22 22 27 5 21 6 33 16 13 31 23 25 37 33 1 14 5 0 21 6 18 22 2 21 15 11 25 1 18 14 23 9 19 8 19 17 6
  1 个评论
Peter Fraser
Peter Fraser 2021-10-11
Thanks. I was trying something similar, but it looks like the heatmap might be ideal for my needs.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Colormaps 的更多信息

标签

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by