Modify colorbar in .fig file

Hello,
Is there anyway to rescale the colors in a figure and hence the colorbar?
eg. Right now colorbar is 0.1 to 0.5 BUT I want the colors in the figure rescaled to 0.1 to 0.7.
Is there anyway to do this without replotting the figure?
Thank you, S

Answers (7)

Tom
Tom on 23 Feb 2012
Try: caxis([0.1 0.7])

1 Comment

+1, You're right, this is probably more what sas0701 is looking for.

Sign in to comment.

figure;
imagesc(magic(20));
h = colorbar;
pause %pause so you can see the change on the next line
set(h,'ylim',[30 60]);
Like this?
sas0701
sas0701 on 23 Feb 2012
Hi, Do I have to something special in terms of loading the figure (just opening it up and typing caxis does not work)?
Thanks, S

2 Comments

I tried it by opening a saved figure which had a color bar on, and it worked for me. But maybe you could try what Sean wrote, though you'll have to find the handle of the color bar yourself:
someone smarter than me might know a quicker way, but to get started you can do H=get(gcf,'children'), and find which one of those has the tag 'Colorbar'
h = findobj('tag','Colorbar')

Sign in to comment.

sas0701
sas0701 on 23 Feb 2012
Hi,
I tried both ways.I first open up a saved .fig file
1)caxis does not change anything 2)set(h...) changes colorbar limits but does not rescale figure colors..
Help!

3 Comments

What do you mean by rescaling - relative to what? Do you want new colors? A picture of the figure might be useful
Hi, Is there a way to attach a file here?
Post the image to a free webhosting site and then use the << url>> tag to poast it in your question. Edit your original question to include the new info:
http://www.mathworks.com/matlabcentral/answers/7924-where-can-i-upload-images-and-files-for-use-on-matlab-answers

Sign in to comment.

sas0701
sas0701 on 23 Feb 2012
I am trying to modify the CLim in the above saved figure..i.e. without creating a new figure.
sas0701
sas0701 on 24 Feb 2012
Hi, Anybody? Want to modify CLim in a saved figure without regenerating it.
Thanks,

2 Comments

CLim is the property of an axes; so get the children of the figure, and modify the clim property of them using set()
This worked.
Open figure. Manually click on it (for some reason this needs to be done) to select it.
set(gca,'CLim',[a b])
This rescales the colors in the figure and updates the colorbar.
Thank you Sean!

Sign in to comment.

Asked:

on 23 Feb 2012

Edited:

S.
on 24 Oct 2013

Community Treasure Hunt

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

Start Hunting!