Choosing color of bars in bar graph depending on value (not individual, but from colormap)

2 vues (au cours des 30 derniers jours)
Hello
I want to create a 2D- bar graph and Color the bars depending on their values in gray tones. That is what I have so far:
figure()
y = rand(10,1)*3-1.5;
x = linspace(start, end, size(y));
b=bar(x,y,1);
% Defining Colormap
cm=gray(size(y));
colormap(cm);
set(get(b,'children'),'cdata', y);
But this does not work. Neither:
set(get(b,'children'),'CData', y);
I am missing something. Any help?
MJ
  4 commentaires
Walter Roberson
Walter Roberson le 28 Juin 2018
Please do not use "end" as a variable name; you will confuse us, you will confuse you, you will confuse MATLAB.
MarionJ
MarionJ le 28 Juin 2018
Sorry. This is actually not my original code. Just edit it for the question. But you are right.

Connectez-vous pour commenter.

Réponse acceptée

MarionJ
MarionJ le 28 Juin 2018
Modifié(e) : MarionJ le 28 Juin 2018
Okay. I have found a complicated way of doing it:
figure()
hold on
y= vector;
x = linspace(startpoint, endpoint, size(y,2));
barColorMap= gray(size(y,2));
lscale=linspace(min(y),max(y),size(barColorMap,1));
for cnt=1:size(y,2)
bg=bar(x(cnt),y(cnt),1);
[~,ind]=min(abs(lscale(:)-y(cnt)));
set(bg,'FaceColor',barColorMap(ind,:),'EdgeColor',barColorMap(ind,:));
end

Plus de réponses (0)

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by