MATLAB Answers

How can I define the colors of the bar, depending on their Z value?

2 views (last 30 days)
Ana Bianco
Ana Bianco on 23 Sep 2019
Commented: Adam Danz on 24 Sep 2019
Hello all,
I have this matrix (8x8) with z values between 0 and 1.
For each 0.1, I want the bar to be varying from the lightest to the darkest color.
Hor can I do this?
I did a bar3 for the matrix.
Thanks in advance :)

  3 Comments

Rik
Rik on 23 Sep 2019
It is probably easier to use patch in a loop in this case. Can you give an example of your intended result?
Adam
Adam on 23 Sep 2019
Do you want literally the same colourmap repeated 10 times or are you expecting it to also get darker as you move up from 0 to 1? If the former then just create your colourmap and use e.g.
myNewcolourmap = repmat( myColourmap, [10, 1] );
to create one that varies within each 10th of the range. Of course if you want to start compressing the colour range to less than 0-1 or use it on arbitrary ranges it may not do what you want, but for a fixed 0-1 range it should work fine.
Ana Bianco
Ana Bianco on 23 Sep 2019
For example, with this comand :
b = bar3(FINALVALUESMAC);
for k = 1:length (b)
zdata = b(k).ZData;
b(k).CData = zdata;
b(k).FaceColor = 'interp';
end
I got this figure: snapshot1.png
but I want the color range to be specified by me.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 23 Sep 2019
Edited: Adam Danz on 23 Sep 2019
After the section of code in your comment above, you can change the colormap to one of Matlab's built-in colormaps or you can create your own. Then use caxis() to scale the color range if needed.
colormap('hot')
% or can flip the colormap
colormap(flipud(colormap('hot')))
% If needed, scale color range
caxis([0,1]) % or whatever range you want

More Answers (0)

Sign in to answer this question.

Products


Release

R2018a