MATLAB中bar3中的图例

时间:2017-07-05 03:46:45

标签: matlab plot graph matlab-figure legend

我无法弄清楚如何在附加的代码中创建图例(用于颜色)?

test1=[5 10 7;
    1 100 0;
    1 3 2];

test2=[10 15 10;
    10 80 10;
    5 5 15];

test3=[10 10 10;
    20 200 20;
    30 10 30];

core=bar3(test1);
set(core,'FaceColor',[1 0 0]); %red
for i=1:length(core)
    zz=get(core(i),'Zdata');
    k=1;
    for j= 0:6:(6*length(core)-6)
        zz(j+1:j+6,:)=zz(j+1:j+6,:)+test2(k,i);
        k=k+1;
    end
    set(core(i),'Zdata',zz);
end
hold on
core=bar3(test2);
set(core,'FaceColor',[0 1 1]);%cyan
hold off
for i=1:length(core)
    zz=get(core(i),'Zdata');
    k=1;
    for j= 0:6:(6*length(core)-6)
        zz(j+1:j+6,:)=zz(j+1:j+6,:)+test3(k,i);
        k=k+1;
    end
    set(core(i),'Zdata',zz);
end
hold on
core=bar3(test3);
set(core,'FaceColor',[1 1 0]);%yellow
hold off

1 个答案:

答案 0 :(得分:0)

首先,我会将所有core重命名为core1core2core3以对应test1test2和{{ 1}},也不要覆盖句柄。然后,如果你使用例如,检查每个的大小。 test3,你会看到每个包含3个图表的3个句柄。所有3都具有相同的颜色,因此您可以选择一个句柄并将其作为第一个参数提供给size(core1)。所以最后你只需要添加

legend

完整代码

legend([core1(1) core2(1) core3(1)], {'A', 'B', 'C'});