Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

3D stacked bars in Matlab

Tags:

plot

matlab

I want to plot multiple stacked bar in only one 'detached' bar plot. E.g, imagine this exactly bar plot, but stacked, instead of one single color.

enter image description here

like image 761
user764186 Avatar asked Oct 23 '22 04:10

user764186


1 Answers

enter image description here

% Set up two random data sets

data1=rand(10);
data2=rand(10);

% plot the first data set

bh=bar3(data1);

% Loop through each row and shift bars upwards

for i=1:length(bh)
      zz = get(bh(i),'Zdata');
      k = 1;

      % Bars are defined by 6 faces(?), adding values from data2 will
      % shift the bars upwards accordingly, I'm sure this could be made
      % better!
      for j = 0:6:(6*length(bh)-6)  
             zz(j+1:j+6,:)=zz(j+1:j+6,:)+data2(k,i);
             k=k+1;
      end

      % Reset Zdata in chart
      set(bh(i),'Zdata',zz);
end

% Set face colour to red for data1

set(bh,'FaceColor',[1 0 0]);

% Apply hold so that data2 can be plotted

hold on;

% Plot data2
bh=bar3(data2);

% Set face color to blue

set(bh,'FaceColor',[0 0 1]);
hold off;
like image 167
Tymo Avatar answered Nov 10 '22 01:11

Tymo