3D grouped bar graph

조회 수: 59 (최근 30일)
friet
friet 2016년 10월 23일
댓글: ALEX CHICAIZA 2020년 11월 10일
Hi I have two grouped bar graphes. The first one is for x=1 and the second one is for x=2. I want to combine both at the same with a 3D view. My code is here
clear all
clc
close all
%at x=1
a=[11;7;14;11;43;38];
b=[11;13;17;13;51;46];
c=[9;11;20;9;69;76];
y1=[a b c];
%at x=2
d=[38;61;75;38;28;33];
e=[46;132;135;88;36;51];
f=[76;186;180;115;85;72];
y2=[d e f];
figure(1)
bar3(y1,'grouped')
title('Grouped Style')
ylabel('y1')
zlabel('z1')
figure(2)
bar3(y2,'grouped')
title('Grouped Style')
ylabel('y2')
zlabel('z2')
Any help is appreciated!
Thank you

답변 (2개)

Sam Penwell
Sam Penwell 2017년 6월 12일
I ran into the same problem. I was able to solve it by using the Xdata of the plot as described for a different case here:
I would suggest you try this:
clear all
clc
close all
%at x=1
a=[11;7;14;11;43;38];
b=[11;13;17;13;51;46];
c=[9;11;20;9;69;76];
y1=[a b c];
%at x=2
d=[38;61;75;38;28;33];
e=[46;132;135;88;36;51];
f=[76;186;180;115;85;72];
y2=[d e f];
figure(1);
hold on;
%First x value
xval = 1;
h = bar3(y1,'grouped');
Xdat = get(h,'Xdata');
for ii=1:length(Xdat)
Xdat{ii}=Xdat{ii}+(xval-1)*ones(size(Xdat{ii}));
set(h(ii),'XData',Xdat{ii});
end
%Second x value
xval = 2;
h = bar3(y2,'grouped');
Xdat = get(h,'Xdata');
for ii=1:length(Xdat)
Xdat{ii}=Xdat{ii}+(xval-1)*ones(size(Xdat{ii}));
set(h(ii),'XData',Xdat{ii});
end
xlim([0 3]);
view(3);
title('Grouped Style')
xlabel('x');
ylabel('y');
zlabel('z');
  댓글 수: 2
Shashibhushan Sharma
Shashibhushan Sharma 2018년 8월 21일
Dear all, I want to plot a 3D bar graph for a given X Y Z row matrix. actually I want to plot bar of Z for a specified X and Y. How to plot it please help me.
Tuhin Choudhury
Tuhin Choudhury 2020년 11월 5일
Thank you for this Sam Penwell, I was facing the same issue and your approach was very helpul.

댓글을 달려면 로그인하십시오.


Massimo Zanetti
Massimo Zanetti 2016년 10월 24일
I think the only way is to group data into one matrix (bar2 groups data row-wise)
figure(1)
bar3([y1,y2],'grouped')
  댓글 수: 3
Massimo Zanetti
Massimo Zanetti 2016년 10월 25일
As far as I know, it is not possible to have groups with different "x" coordinate. Looking forward to see if someone else can solve it.
ALEX CHICAIZA
ALEX CHICAIZA 2020년 11월 10일
Help I need similar but "stacked". How I can do it?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Discrete Data Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by