Grouping bar3 plots like bar
I'm wondering if it is possible to get the same grouping behavior of bar
plots into bar3
.
For example, if you plot
bar(rand(3));
you get 3 bars for each point; bar
groups the different y values for each x. Now I would like to do the same with a 3D data. That is that I have several slices of 2D data that I want to visualize as groups of bars. Then, if my data is
data = rand(3,3,2);
I would like to see data(1,1,:)
as a group of bars, and data(1,2,:)
as another group and so on.
Is it possible? I cannot find a way of achieving this.
Edit: I'm adding more details, to explain it better.
Lets said that we have two, or more, sets of data {x_(i,j)^s}
. What I need is to group in the same grid position (i,j)
, all the sets s
. In this question, they are grouping the data sets side by side, not element-wise, like this:
x1(s1) x1(s2) x1(s3) x2(s1) x2(s2) x2(s3) x3(s1) x3(s2) x3(s3)
x4(s1) x4(s2) x4(s3) x5(s1) x5(s2) x5(s3) x6(s1) x6(s2) x6(s3)
x7(s1) x7(s2) x7(s3) x8(s1) x8(s2) x8(s3) x9(s1) x9(s2) x9(s3)
I would like the bar
command behavior, it tends to group开发者_如何学编程 when putting more than one data set. I would like to know if it is possible.
I am not sure I fully understood, but if you are looking for grouped behavior like you mention with bar(rand(3))
then you can try
figure; bar3(rand(5),'grouped');
% or maybe
figure; bar3(rand(5),'stacked');
or try to rearrange the data in data so it can work better with bar3 with reshape:
data = rand(3,3,2);
% now each data(i, j, :) will be in single row
changeddata = reshape(data , [size(data , 1)*size(data , 2) 2]);
figure; bar3(changeddata);
figure; bar3(changeddata ,'grouped');
figure; bar3(changeddata ,'stacked');
Maybe if you can give a code example for how it's supposed to look in one group, it would help to understand your question better.
If you want to group bars in 3D bar plots, but you are happy o small groups (let's say 2 or 3 bars each group) then you can simply take advantage of the Y argument in bar3: BAR3(Y,Z,WIDTH) so you specify the location of the two groups of bars with two shifted Y vectors.
example: bar3(0:3:9,rand(4,4),0.3) hold on bar3(1:3:10,rand(4,4),0.3)
then you can edit the label the way it suits you.
精彩评论