Giving step size to colorbar
35 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Mahith Madhana Kumar
il 23 Dic 2021
Commentato: Mahith Madhana Kumar
il 25 Dic 2021
Hi all.
I was wondering whether it is possible to give step size to colorbar while plotting using pcolor(X,Y,C) where (X,Y) are the X, Y axes of the plot and C corresponds to the colorbar variable. I used caxis([1e10 1e12]) to set the limits of my colorbar and the result is as in figure 1.png. However, do notice that the colorbar is covered (mostly) entirely by values between 1e11 and 1e12 with only a small portion between 1e10 and 1e11. I however need something like in figure 2.png where the spacing between 1e10 and 1e11 is the same as 1e11 and 1e12.
Any lead would be highly appreciated.
Thank you.
0 Commenti
Risposta accettata
Voss
il 23 Dic 2021
If you had limits from 1 to 100, you would expect about 90% of the colors to be in the 10 to 100 range and about 10% to be in the 1 to 10 range, right? (Actually 90/99 and 9/99, respectively.) That's the same situation as you have here, except that the limits are scaled up by 1e10.
What you are really after is some sort of log-scale colorbar, which as far as I know, there is no built-in support for (maybe on the file exchange you can find something). What you can try is to use log10(C) for your color values and use log10() of your color limits:
pcolor(X,Y,log10(C));
caxis([10 12]);
colorbar();
then manually set the YTickLabels of the colorbar axes to {'10^{10}', '10^{11}', '10^{12}'}. It may be a little tricky to maintain the correct YTickLabels on the colorbar as the data change, but it is feasible.
Più risposte (1)
Image Analyst
il 23 Dic 2021
You can make "steps" in your colorbar independently of the caxis. Just specify how many rows in your colormap,
cmap = jet(8); % 8 steps.
colormap(cmap);
colorbar;
or
cmap = jet(32); % 32 steps
colormap(cmap);
colorbar;
3 Commenti
Image Analyst
il 24 Dic 2021
If you're looking to change the number and location the tick marks and their labels in the colorbar, instead of the number of uniform color steps in the colorbar, then you can adapt this example from the help:
contourf(peaks)
colorbar('Ticks',[-5,-2,1,4,7],...
'TickLabels',{'Cold','Cool','Neutral','Warm','Hot'})
Vedere anche
Categorie
Scopri di più su Orange in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!