How to show a colorbar of a certain range?

Hello all and happy Friday!
Let's say I have an image with a colormap and corresponding colorbar
I = imread('cameraman.tif');
imshow(I);
colormap jet
colorbar
I want the colorbar to only show colors for a certain range of values:
range_care = [100 150]; %show colors for values 100:150
Any ideas?
Thanks, plzzzz rply qckly its urgenttt
had to :)

 Accepted Answer

Hi,
something like this:
h = colorbar;
set(h, 'ylim', [100 150])
Titus

2 Comments

sorry, if it wasn't quick enough ;-)
That's it, and plenty quick - before third cup of coffee even...

Sign in to comment.

More Answers (4)

In R2014b, this is now possible by setting the limits of the colorbar directly:
surf(peaks)
h = colorbar
h.Limits = [-2 2]

3 Comments

Is that the same as caxis([-2,2])?
No. Caxis rescales the colormap so anything below caxis(1) is the minimal color and anything above caxis(2) is the top of the colormap
subplot(1,2,1)
surf(peaks)
h = colorbar;
h.Limits = [-2 2];
title('My original question from grad school')
subplot(1,2,2)
surf(peaks)
h = colorbar;
caxis([-2 2])
title('using caxis')

Sign in to comment.

Maohan Su
Maohan Su on 22 Jan 2014
Edited: Maohan Su on 22 Jan 2014
cmap = colormap; %get current colormap
cmap=cmap([min max],:); % set your range here
colormap(cmap); % apply new colormap
colorbar();
Okay I don't know whether this is the right one or not.
But I have tried this.
I = imread('cameraman.tif');
imshow(I,'DisplayRange',[100 150]);
colormap jet
colorbar
Hope this is what your looking for.
-Harsha

1 Comment

Thank you, but that's not what I'm looking for. That turns everything above 150 to red and everything below 100 to blue. I want the full range of the colormap displayed on the image; just the colorbar showing a fraction of the range.

Sign in to comment.

I have a related problem, I don't know if this is the appropriate place to ask.
I'm plotting multiple sublots (9x2). For each row, the first sublot has a certain colorbar range and the second one has another. Each time I start plotting a new row (say r), the second subplot of the previous row (r-1,2) changes colorbar. I tried freezeColors and related utilities, to no avail. Anyone has advices?

Community Treasure Hunt

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

Start Hunting!