Colormap: set color for ranges

2 views (last 30 days)
Colby
Colby on 1 Jul 2015
Commented: Colby on 2 Jul 2015
I have a matrix that represents a model grid. Non active grid cells are represented by nan within the matrix, cells that don't have data are represented with a zero, and then the rest of the cells are represented with either a positive or a negative number. I want to plot them such that the nan values are all one color, all values that are exactly 0 are one number, values greater than 0 are all one color, and values less than 0 are all one color. I'm at a loss trying to figure out how to do this. Does anyone know how I can accomplish this? Thanks!

Accepted Answer

Walter Roberson
Walter Roberson on 2 Jul 2015
colorid = sign(DataMatrix) + 3; %negative -> 2, 0 -> 3, positive -> 4
colorid(isnan(colorid)) = 1;
Now nan are 1, negative are 2, 0 are 3, positive are 4. From there you can create 4 x 3 color table such as
colortab = [32 32 32; 0 128 0; 256 0 0; 0 0 0]./256;
image(colorid)
colormap(colortab);
  1 Comment
Colby
Colby on 2 Jul 2015
This is fantastic! Simple but yet I wouldn't have ever figured it out. Thanks so much for the help!

Sign in to comment.

More Answers (0)

Categories

Find more on Colormaps in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!