MATLAB Answers

Custom colour bar, excluding the Blue from RGB.

2 views (last 30 days)
NN
NN on 16 Jan 2020
Commented: Star Strider on 17 Jan 2020
I made a custom colour bar where 100 fell exactly at green and 200 at red. Anything from 0 to 100 along with their colours in insignificant and I'd prefer they do not show up in the colour bar. That being said, I would specifically like to have the colour bar such that it starts at the lowest (green) at 100 and ends at the highest (red) at 200.
untitled.jpg
I used the following code for the image.
figure()
A = [200 200 200 200 200; 200 200 200 200 200; 200 200 100 200 200; 200 200 200 200 200; 200 200 200 200 200];
Percent_matrix = flipud (A);
Percent_Interp = imresize(Percent_matrix,200,'bilinear');
pcolor(Percent_Interp)
shading interp
caxis([0 200])
load CustomColourMap
colormap( CustomColourMap );
colorbar();

  0 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 16 Jan 2020
Edited: Star Strider on 16 Jan 2020
Define ‘CustomColourMap’ as:
CustomColourMap = @(x) [linspace(0,1,x).' linspace(1,0,x).' zeros(x,1)];
then to use it:
CustomColourMap = @(x) [linspace(0,1,x).' linspace(1,0,x).' zeros(x,1)];
figure()
A = [200 200 200 200 200; 200 200 200 200 200; 200 200 100 200 200; 200 200 200 200 200; 200 200 200 200 200];
Percent_matrix = flipud (A);
Percent_Interp = imresize(Percent_matrix,200,'bilinear');
pcolor(Percent_Interp)
shading interp
caxis([100 200])
% load CustomColourMap
colormap( CustomColourMap(64) );
colorbar();
produces:
Custom colour bar, excluding the Blue from RGB - 2020 01 16.png
EDIT —
Corrected typographical error.

  2 Comments

NN
NN on 17 Jan 2020
The result is perfectly the way i wanted it. Nice of you to display the final image after using the updated code.
Thank you.
Cheers!
Star Strider
Star Strider on 17 Jan 2020
As always, my pleasure!
Thank you! The plot is the intent of your Question and my Answer, so posting it is necessary!

Sign in to comment.

More Answers (1)

Stijn Haenen
Stijn Haenen on 16 Jan 2020
Maybe you can try this:
h=figure();
A = [200 200 200 200 200; 200 200 200 200 200; 200 200 100 200 200; 200 200 200 200 200; 200 200 200 200 200];
Percent_matrix = flipud (A);
Percent_Interp = imresize(Percent_matrix,200,'bilinear');
pcolor(Percent_Interp)
shading interp
caxis([0 200])
colorbar();
h.Children(1).Limits=[100 200];
set(h,'Colormap',[Colormap_data]) % colormap data should be RBG codes: [[0.2422,0.1504,0.66030;0.2444,0.1534,0.6728;0.2464,0.1569,0.6847; ..... ]

  0 Comments

Sign in to comment.

Sign in to answer this question.

Products


Release

R2018b