Filter löschen
Filter löschen

3D grouped bar graph

22 Ansichten (letzte 30 Tage)
friet
friet am 23 Okt. 2016
Kommentiert: ALEX CHICAIZA am 10 Nov. 2020
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

Antworten (2)

Sam Penwell
Sam Penwell am 12 Jun. 2017
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 Kommentare
Shashibhushan Sharma
Shashibhushan Sharma am 21 Aug. 2018
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 am 5 Nov. 2020
Thank you for this Sam Penwell, I was facing the same issue and your approach was very helpul.

Melden Sie sich an, um zu kommentieren.


Massimo Zanetti
Massimo Zanetti am 24 Okt. 2016
I think the only way is to group data into one matrix (bar2 groups data row-wise)
figure(1)
bar3([y1,y2],'grouped')
  3 Kommentare
Massimo Zanetti
Massimo Zanetti am 25 Okt. 2016
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 am 10 Nov. 2020
Help I need similar but "stacked". How I can do it?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Discrete Data Plots finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by