我正在尝试创建一个 3D 堆积条形图,如这个问题所示:Matlab 中的 3D 堆叠条形图 https://stackoverflow.com/questions/13156133/3d-stacked-bars-in-matlab%5D。然而,与这个问题不同的是,我想使用 3 个数据集而不是 2 个。我认为我有一个(可能很简单)的问题,即条形图无法正确向上移动或类似的问题。
我拥有的三个数据集称为 test1、test2 和 test3,分别是:
5 10 7
1 100 0
1 3 2
10 15 10
10 80 10
5 5 15
10 10 10
20 200 20
30 10 30
And plotting them produces this:
正如您所看到的,中央栏的总高度应为 380,但高度仅为 280。其中一个数据集的条形图似乎呈现在其他两个数据集的“内部”,这也可以解释为什么条形图具有 3 条中心分隔线,而不是我们期望的 2 条。
我正在使用的代码是:
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
如何使条形图正确向上移动?或者,我如何使用 Matlab 代码为数据制作 3D 堆积条形图?非常感谢任何帮助,感谢您的宝贵时间。