在单个条形图中表示两个二维矩阵

时间:2017-04-11 14:36:02

标签: matlab figure

我确实从我的核心流程生成了两个二维矩阵。现在,我想通过条形图来表示它们。 我可以设法获得独立矩阵的3d条形图,如附图所示。

xData bar3 figure

我的数据矩阵

  1. " XDATA" - 大小为:(52 x 46)
  2. " YDATA" - 大小为:(52 x 46)
  3. 他们总是拥有相同的尺寸。

    现在,我想在' Grouped Style' 中将它们组合在一起,如here中所示。我通过将它们(xData和yData)组合在一起得到3D维矩阵,即生成52 x 46 x 2矩阵,然后尝试用 bar3 命令绘图;但是,我收到了一个错误,无法绘制。 你们对如何做到这一点有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我设法使用循环和SO answer

来做到这一点
% generate random data
sz = [5 4];
xData = rand(sz);
yData = rand(sz);
% plot zeros in the same size to prepare plot
Z = zeros(sz);
h0 = bar3(Z);
set(h0,'EdgeColor','none','FaceColor','none');
axis tight
% plot each data column in a loop
hold on
for kk = 1:size(xData,2)
    h1 = bar3([xData(:,kk),yData(:,kk)],'grouped');
    % move current bars to their x position
    cellfun(@(x) set(h1,'XData', x + (kk - 1)), get(h1,'XData'));
end

enter image description here