【问题标题】:Colors of bars in MATLAB histogramMATLAB直方图中条形的颜色
【发布时间】:2018-04-04 13:55:14
【问题描述】:

我想按照下面代码中注释掉的部分中的建议为 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');

【问题讨论】:

    标签: matlab plot histogram


    【解决方案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 属性。

    【讨论】:

      【解决方案2】:

      您可能尝试使用bar 函数的新属性CData,而您使用的是以前版本的matlab。 如果您收到您在 cmets 中写的错误(为什么不在问题本身中?),您应该省略 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];
      

      【讨论】:

        【解决方案3】:

        以下两行看起来不正确:

        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];
        

        【讨论】:

        • 所以,添加 b.CData(1,:) = [0.4,0.6,0.8]; b.CData(2,:) = [0.3,0.4,0.6];实际上是在给我一个错误......
        • 你试过用空格替换逗号吗(例如[0.4 0.6 0.8])?我认为这也是同样的事情。或者,您收到什么错误消息?
        • “matlab.graphics.chart.primitive.Bar”类没有合适的方法、属性或字段“CData”。 plotCorr 中的错误(第 21 行) b.CData(1,:) = [0.4,0.6,0.8];
        猜你喜欢
        • 2012-08-26
        • 1970-01-01
        • 2012-10-25
        • 2019-06-01
        • 1970-01-01
        • 2022-08-15
        • 2018-10-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多