Matlab中条组的自定义颜色

Matlab中条组的自定义颜色,matlab,matlab-figure,Matlab,Matlab Figure,我想在Matlab条形图中为一组条形图定制颜色 就像这里展示的,但颜色不同。我该怎么做 我尝试使用以下代码,但它显示的是堆叠的条而不是组 xdata = [1 2 3]; ydata = [10 20 30; 40 50 60; 5 6 7]; clr = [0 0.8 0; 0.3 0.8 0.8; 0 0 1]; for i = 1:length(xdata) p = bar(xdata, ydata(i,:)); hold on set(p,'Fac

我想在Matlab条形图中为一组条形图定制颜色

就像这里展示的,但颜色不同。我该怎么做

我尝试使用以下代码,但它显示的是堆叠的条而不是组

xdata = [1 2 3];
ydata = [10 20 30; 40 50 60; 5 6 7];
clr = [0 0.8 0;
   0.3 0.8 0.8;
   0 0 1];

for i = 1:length(xdata)
    p = bar(xdata, ydata(i,:));
    hold on
    set(p,'FaceColor', clr(i,:));
end

感谢您的帮助。谢谢。

您可以为条形图指定一个句柄,然后更改
FaceColor
属性。控制柄实际上是一个控制柄数组,每个控制柄包含构成条形图的每个面片对象的属性。这样就可以轻松地更改您想要的任何属性:

clear
clc

close all

xdata = [1 2 3];
ydata = [10 20 30; 40 50 60; 5 6 7];
clr = [0 0.8 0;
   0.3 0.8 0.8;
   0 0 1];

hBar = bar(ydata);

for k = 1:numel(hBar)
set(hBar(k),'FaceColor',clr(:,k))

end
输出:

hBar是一个3x1结构,包含构成绘图的每个面片对象的属性:

手柄:

hBar =

  175.0597  178.0494  180.0494
如果您键入
get(hBar)

3x1 struct array with fields:

    Annotation
    DisplayName
    HitTestArea
    BeingDeleted
    ButtonDownFcn
    Children
    ...
    And so on
    ...

回答得好!谢谢。