×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

How to adjust colorbar range in a matlab plot

How to adjust colorbar range in a matlab plot

How to adjust colorbar range in a matlab plot

(OP)
Hi everyone,

new to Matlab here. I have a n x m matrix with values in the range 0.0-3.0 aprox. I want to make a plot using only 2 colors: red if value < 1 and green otherwise. I used imagesc with colormap ([1 0 0; 0 1 0]). The problem is that the colorbar divides the range from 0 to 1.5 (red) and 1.5 to 3.0 (green). I suppose it's easy, but I can't found how to change the colorbar limits, in order to get 0.0 to 1.0 = red, and 1.0 to 3.0 = green. Any help?

Thank you in advance.
FGS

RE: How to adjust colorbar range in a matlab plot

Mr Ugly says why not transpose your results matrix to match the colorbar? newX=(X>1)+.5; or something like that. I'm sure you can define a custom colorbar, but I am o a non matlab computer.

Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376: Eng-Tips.com Forum Policies http://eng-tips.com/market.cfm?

RE: How to adjust colorbar range in a matlab plot

(OP)
Thanks, Greg. I haven't solved my problem yet, just trying alternative solutions like your suggestion. Seems a good idea, i'll try it.

(BTW, sorry for my delay in the response)

FGS

RE: How to adjust colorbar range in a matlab plot

Try this: If the N x M is huge, you save a lot of overhead by just altering the structure contents.

x = [0 1 2 3;1 2 3 0;2 3 0 1;3 0 1 2] % example user array
map = [1 0 0; 0 1 0]; % The red & green primaries wanted

S= imagesc(x) % nice pretty colors, regardless...

CD = get(S,'CData') % Don't wipe the original matrix. Extract the plot data.

CD(find(CD <= 1)) = 0 % user paint scheme. 0 is 1st color
CD(find(CD > 1)) = 1 % 2nd color

set(S,'CData',CD) % 2 Pac Secure, but wrong colors.

colormap(map) % Merry Christmas !
%when you are happy with the results:

colormap % restore the original colors.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login


Resources

White Paper - The Evolving Landscape of Commercial Battery-Powered Trucks
What’s driving the evolving landscape of truck electrification? What are the barriers, motivators and strategies for accelerating the electric transition? What insights and resources are available for today’s design engineers working to achieve industry disruption and evolution? For answers to these and other pertinent questions, read this white paper. Download Now
eBook - Rethink Your PLM
A lot has changed since the 90s. You don't surf the Web using dial-up anymore, so why are you still using a legacy PLM solution that's blocking your ability to innovate? To develop and launch products today, you need a flexible, cloud-based PLM, not a solution that's stuck in the past. Download Now

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close