Giving step size to colorbar
조회 수: 48 (최근 30일)
이전 댓글 표시
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
채택된 답변
Voss
2021년 12월 23일
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.
추가 답변 (1개)
Image Analyst
2021년 12월 23일
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
Image Analyst
2021년 12월 24일
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'})
참고 항목
카테고리
Help Center 및 File Exchange에서 Colormaps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!