Colormap setting the colors i want

Hello, So I discovered Colormap, and I want to draw a Color map of a matrix A I got that has ranges from 0 to 1. But I don't want to use the colours Matlab provides (jet for example), I want to create my own. Green for 0, Red for 1, and in between a mix from red, yellow for 0.5, orange and then red. A bit like Excel does.
colormap('jet');
imagesc(A);
colorbar;
Thanks

2 Commenti

"But I don't want to use the colours Matlab provides..."
As well as the ones that MATLAB provides:
you can find plenty of colormaps on FEX:
I would like to create one has simples as Excel, red to green or green to red, with orange for middle values

Accedi per commentare.

 Risposta accettata

Stephen23
Stephen23 il 29 Giu 2018
Modificato: Stephen23 il 29 Giu 2018

1 voto

You can easily adjust colormaps by using the colormapeditor:
As an alternative to defining the colormap matrix "by hand", you could use one of the colormap generators/creators on MATLAB FEX:
Some of them allow you to create a whole colormap from just a few RGB colors, e.g.:

3 Commenti

ok, i did it in the colormap editor? can I somehow save the colormapeditor i created?
Tiago Dias
Tiago Dias il 2 Lug 2018
Modificato: Tiago Dias il 2 Lug 2018
I tried to do this to save my colormap like this:
ax = gca;
mymap = colormap(ax);
save('MyColormap','mymap')
when I make
imagesc(B)
colormap mymap
colorbar
the colours are not what I saved previously, he uses Panula by default, because he doenst recognize mymap has a type of colours.
Nevermind, i was typing it wrong
colormap(mymap)
works perfect, thanks for your first link it helped me a lot :)

Accedi per commentare.

Più risposte (2)

Create your own colormap then assign values in whatever way you want:
numColors = 256; % Whatever....
myColorMap = zeros(numColors, 3); % Col1 = red, col2 = green, col3 = blue.
myColorMap(row1:row2, 1); % Set red values however you want.
... etc...
% Apply it.
colormap(handlesToMyAxes, myColorMap);
% Show bar
colorbar;

9 Commenti

myColorMap(row1:row2, 1); % Set red values however you want.
Gives me an error "undefined function or variable "row1"
You probably did not assign row1. You need to do that. Basically a colormap is an N by 3 array where each row corresponds to the value of your image, and contains the RGB values that you want that value of your image to appear in. So for example if row 1 is [0, 1, 0.5] then that would mean gray level 0 (which row 1 corresponds to) should show up with no red, full brightness green, and half brightness blue.
If you're not familiar with programming then you might just use the color map editor like Stephen referred you to.
Do I need to also select the intermediate colors? or Matlab does an "color interpolation" from the start color to the end color?
"Do I need to also select the intermediate colors? or Matlab does an "color interpolation" from the start color to the end color?"
If you want a 64x3 colormap (the default size) then you will need to define all 64 colors yourself (e.g. by interpolation).
64x3 will give me 64 different colors right?
Stephen23
Stephen23 il 29 Giu 2018
Modificato: Stephen23 il 29 Giu 2018
@Tiago Dias: yes.
I highly recommend that you give the colormapeditor a try.
@Stephen Cobeldick I tried that but i cant change the 1 st colour that is purple for other colour.
Please attach your matrix "A" in a .mat file.
I got a lot of values from 0 to 1, and my objective is to creat 10 intervals of colours 0,0.1,0.2,0.3,...,1.0 from red to green like excel does.

Accedi per commentare.

Wooshik Kim
Wooshik Kim il 29 Giu 2018
Modificato: Wooshik Kim il 29 Giu 2018

0 voti

You can set your own colormap with the following
mymap = [0 0 0.3 0 0 0.4 0 0 0.5 0 0 0.6 0 0 0.8 0 0 1.0]; colormap(mymap)
where each column corresponds to Red, Green, Blue intensities between 0 and 1.
The following page might be helpful.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by