我想知道是否有可能将bar
绘图的相同分组行为转换为bar3
。
例如,如果您绘制
bar(rand(3));
每个点你得到3个小节; bar
为每个 x 分配不同的 y 值。现在我想对3D数据做同样的事情。那就是我有几片2D数据,我想将其视为一组条形图。然后,如果我的数据是
data = rand(3,3,2);
我希望将data(1,1,:)
视为一组条形码,将data(1,2,:)
视为另一组,依此类推。
有可能吗?我无法找到实现这一目标的方法。
修改:我正在添加更多细节,以便更好地解释它。
让我们说我们有两组或更多组数据{x_(i,j)^s}
。我需要的是分组在同一网格位置(i,j)
,所有集合s
。在this question中,他们将数据集并排分组,而不是按元素分组,如下所示:
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)
我想要bar
命令行为,它倾向于在放置多个数据集时进行分组。我想知道是否有可能。
答案 0 :(得分:1)
我不确定我是否完全理解,但如果您正在寻找像bar(rand(3))
那样提及的分组行为,那么您可以尝试
figure; bar3(rand(5),'grouped');
% or maybe
figure; bar3(rand(5),'stacked');
或者尝试重新排列数据中的数据,以便使用重新整形的bar3更好地工作:
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');
也许如果你能给出一个代码示例来说明它应该如何在一个组中查看,那么这将有助于更好地理解你的问题。
答案 1 :(得分:0)
如果你想在3D条形图中对条形图进行分组,但是你很高兴小组(假设每组有2或3条条),那么你可以简单地利用bar3中的Y参数: BAR3(Y,Z,WIDTH) 所以你用两个移动的Y向量指定两组柱的位置。
例如: BAR3(0:3:9,兰特(4,4),0.3) 坚持,稍等 BAR3(1:3:10,兰特(4,4),0.3)
然后您可以按照适合自己的方式编辑标签。