我想在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');
答案 0 :(得分:2)
当您使用以前版本的matlab时,您可能会尝试使用CData
函数的新属性bar
。
如果你得到你在评论中写的错误(为什么不在问题本身?),你应该省略CData
:
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];
答案 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
属性的颜色。