Align colorbar ticks with corresponding colors

9 visualizzazioni (ultimi 30 giorni)
Hi all,
I have the following script, which plots the corresponding plot. How can I change this so the discrete colors match the used ticks in both the plot and the colorbar? E.g. the dark purple for 14.3-15, then next blueish/purple from 15-16 and so on.
Thanks!
x1=data(:,1);
y1=data(:,2);
z1=data(:,3);
[XI,YI] = meshgrid(x1,y1);
ZI = griddata(x1,y1,z1,XI,YI);
surf(XI,YI,ZI);
shading interp;
set(gca, 'YScale', 'log');
colormap(parula(10));
cbh = colorbar ; %Create Colorbar
cbh.Ticks = [14.3 15 16 17 18 19 20] ; %Create ticks
box on;
grid on;
set(gca,'Layer','Top');
view([90 90]);
ylim([7e-15 1.1e-12]);
xlim([4.5e-17 7.25e-17]);
caxis([14 21]);
  1 Commento
Jan
Jan il 7 Giu 2018
Modificato: Jan il 7 Giu 2018
I do not understand: "the discrete colors match the used ticks in both the plot and the colorbar". The colors of the diagram and the colorbar are matching already. Which "ticks" do you mean? The ticks of the colorbar? Then the "20" is written with yellow on white? This would be a bad idea, wouldn't it?

Accedi per commentare.

Risposte (1)

Sindhu Yerragunta
Sindhu Yerragunta il 18 Giu 2018
Hi Yoni,
This misalignment occurs due to the fact that if suppose there are 10 colors in the colormap, but only 9 bins to put them in.
In general, for a vector containing N ticks, there are N-1 intervals.
In your case reducing the number of colors in the colormap to 7 should help,
colormap(parula(7));
Hope this answers the query.
-Sindhu

Categorie

Scopri di più su Colormaps 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!

Translated by