MATLAB直方图中的条形颜色

时间:2017-10-23 21:57:15

标签: matlab plot histogram

我想在MATLAB条形图中为条形图着色,如下面在我的代码的评论部分中所建议的那样,但是,当包含此部分时,它会抛出错误。我怎么能解决这个问题?

x = [1.5,2.5;1.5,2.5;1.5,2.5];

b = bar(x)
% b.FaceColor = 'flat';
% b.CData(1,:).FaceColor = [0.4,0.6,0.8];        
% b.CData(2,:).FaceColor = [0.3,0.4,0.6];  


set(gca,'XTickLabel',{'\fontsize{16}Cond1', '\fontsize{16}Cond2', '\fontsize{16}Cond3'})

legend('\fontsize{16}Class1','\fontsize{16}Class2');
ylim([0 5.5])
ylabel('\fontsize{16}Intensities [V]')
title('\fontsize{16}Intensities for all conditions');

3 个答案:

答案 0 :(得分:2)

当您使用以前版本的matlab时,您可能会尝试使用CData函数的新属性bar。 如果你得到你在评论中写的错误(为什么不在问题本身?),你应该省略CData

x = [1.5,2.5;1.5,2.5;1.5,2.5];
b = bar(x)

enter image description here

b(1).FaceColor = [0.4,0.6,0.8];
b(2).FaceColor = [0.3,0.4,0.6];

enter image description here

答案 1 :(得分:1)

以下两行看起来不正确:

b.CData(1,:).FaceColor = [0.4,0.6,0.8];
b.CData(2,:).FaceColor = [0.3,0.4,0.6];

您正在寻找:

b.CData(1,:) = [0.4,0.6,0.8];
b.CData(2,:) = [0.3,0.4,0.6];

答案 2 :(得分:1)

请尝试一下:

x = [1.5,2.5;1.5,2.5;1.5,2.5];

b = bar(x);
b(1).FaceColor = [0.4,0.6,0.8];
b(2).FaceColor = [0.3,0.4,0.6];

我认为它会完全符合您的要求。基本上,您需要索引b对象以访问不同的数据集,并更改它需要修改FaceColor属性的颜色。