I sometimes require a plot which has a colorbar with a log scale. Previously I did this by setting the 'yscale' property of the underlying colorbar axes, but this no longer works with the new graphics system. Is there a workaround for the new system?

 Réponse acceptée

Jonathan Campelli
Jonathan Campelli le 15 Avr 2015

7 votes

Hello Tom,
My script plots sample data in logscale using "countourf", and both "YTick" and "YTickLabel" are set in "colorbar" on the last line:
Data=magic(100);
c=[1 10/3 10 100/3 100 1000/3 1000 10000/3 10000];
contourf(log(Data(:,:)),log(c));
colormap(bone); %Color palate named "bone"
caxis(log([c(1) c(length(c))]));
colorbar('FontSize',11,'YTick',log(c),'YTickLabel',c);
If this code does not meet your needs, let me know, and I will develop a more appropriate solution,
Best regards,
Jonathan Campelli

2 commentaires

Troy Dion
Troy Dion le 3 Août 2017
Is there a way to make this work with scatter3?
Troy
Bo Wang
Bo Wang le 27 Avr 2020
its a really nice answer to me , thanks !

Connectez-vous pour commenter.

Plus de réponses (1)

Xiaolong
Xiaolong le 26 Mar 2020

1 vote

set(gca,'colorscale','log')

1 commentaire

Walter Roberson
Walter Roberson le 27 Avr 2020
Note: that was not available at the time the question was originally asked.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by