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

4 ビュー (過去 30 日間)
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 件のコメント
Walter Roberson
Walter Roberson 2018 年 6 月 28 日
Please do not use "end" as a variable name; you will confuse us, you will confuse you, you will confuse MATLAB.
MarionJ
MarionJ 2018 年 6 月 28 日
Sorry. This is actually not my original code. Just edit it for the question. But you are right.

サインインしてコメントする。

採用された回答

MarionJ
MarionJ 2018 年 6 月 28 日
編集済み: MarionJ 2018 年 6 月 28 日
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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBlue についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by