Edit colorbar of heatmap (string)
145 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Gerrit Liedtke
le 26 Juin 2019
Réponse apportée : Tony Castillo
le 19 Déc 2023
Hi,
Is it possible to edit the colorbar of a heatmap such that it looks like the following image (rapidly created with paint ;) )
So the values aren't numeric but strings.
Thanks for help!
1 commentaire
Adam Danz
le 26 Juin 2019
Modifié(e) : Adam Danz
le 28 Juin 2019
The handle to the colorbar in heatmap is inaccessible. Without the handle, you can't change properties to the colorbar; you can't even delete it. Even when you try to add a new colorbar, you cannot output the handle with a heatmap plot.
heatmap() in general is highly restrictive in the user's abilty to manipulate many of its properties. I used to use heatmap more frequently prior to these changes and have moved onto using imagesc() instead. Bummer.
Réponse acceptée
Adam Danz
le 26 Juin 2019
Modifié(e) : Adam Danz
le 27 Juin 2019
This can't be done with heatmap() (see comments under the question).
If you're using a different function that allows access to the colobar, it's fairly straightforward. Here's a demo.
% Create demo
C = rand(3,4)/10;
imagesc(C)
cbh = colorbar();
% set color range
caxis([0,.1])
% set ticks
set(cbh, 'YTick', [0.001, 0.01, 0.05, .1], ...
'YTickLabel', {'p=0.001', 'p=0.01', 'p=0.05', 'p=.1'})
0 commentaires
Plus de réponses (2)
Christian Karcher
le 28 Avr 2020
Modifié(e) : Christian Karcher
le 28 Avr 2020
The handle to the colorbar is accessible, and with it all modifications:
figure;
heatmap(rand(5))
axs = struct(gca); %ignore warning that this should be avoided
cb = axs.Colorbar;
cb.TickLabels = {'p<0.1','p>0.1','...'};
7 commentaires
Alexander Krauss
le 29 Sep 2022
Modifié(e) : Alexander Krauss
le 29 Sep 2022
Great solution, thanks a lot (also for the rapid reply) ! :)
Best regards,
Alex
Muhanned Alsaif
le 21 Août 2023
Modifié(e) : Muhanned Alsaif
le 21 Août 2023
another way to access the colorbar can be found in the following post:
Tony Castillo
le 19 Déc 2023
Is it possible to add a label to that colour bar which is directly created in a heatmap? I mean we can tag a SURF plot (the colourbar because it is separated from the surfplot), but I have not found the manner of doing the same in the colorbar of the heatmap.
0 commentaires
Voir également
Catégories
En savoir plus sur Colormaps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!