Set color to 'none' instead of white in 'heatmap'
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi,
I am facing a problem while using 'heatmap' function. Basically, I would like the ''MissingDataColor'' to be none instead of white, as seen below (titled 'Figure 3'). I found some color settings (e.g., ''CellLabelColor'') can be set none. So, it draws my curiosity that if I could modify the other color setting to have the same property.
Overall, I'm trying to render the final exported image to have transparent areas that now are shown white.
Thank you in advance for your help!
Best,
Yue

0 Kommentare
Antworten (1)
Tommy
am 18 Apr. 2020
Unfortunately 'none' is not a valid value for 'MissingDataColor', and I cannot find any way to set alpha values in heatmaps.
Would something like the following work for you? A unique color (here, pink, but could be anything) is used as the missing data color. Then, after you have finished editing the heatmap however you like, the heatmap is copied to an image. Any pixel in the image whose color equals the unique missing data color is set to transparent using the 'AlphaData' property of an image.
% set up some random data to plot in heatmap
N = 10;
d = randi(10,N);
d(randi(N*N,3,1)) = NaN;
% create heatmap
f = figure;
mC = [255 192 203]; % RGB of color for missing data - should not match any other color in heatmap
h = heatmap(f, d, 'MissingDataColor', mC./255);
% after you are completely done editing heatmap, transfer to image and set image's AlphaData property
c = frame2im(getframe(f)); % color data
a = ones(size(c(:,:,1))); % alpha data
a(c(:,:,1)==mC(1) & c(:,:,2)==mC(2) & c(:,:,3)==mC(3)) = 0; % set alpha data for pixels of missing data to transparent
figure
I = imshow(c);
I.AlphaData = a;
0 Kommentare
Siehe auch
Kategorien
Mehr zu Color and Styling finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!