在Matlab中绘制网格上的三维条形图

在Matlab中绘制网格上的三维条形图,matlab,grid,reshape,stacked,Matlab,Grid,Reshape,Stacked,我有一个矩阵a,它包含50行和4列,条目用整数填充。我的兴趣是从这些数据构建一个堆叠的三维条形图。但是,使用bar3(A,'堆叠')创建了一行50个条,而我希望这些条绘制在大小为5(垂直)x 10(水平)的网格坐标处。因此,该行中的第一根钢筋位于位置(1,1),第二根钢筋位于位置(1,2),第11根钢筋位于位置(2,1),依此类推,直到第50根钢筋位于位置(5,10)。我似乎找不到在Matlab中实现这一点的方法,这可能吗 提前谢谢你 我同意@cris,有更好的方法来表示您的数据。但是,如果您仍

我有一个矩阵a,它包含50行和4列,条目用整数填充。我的兴趣是从这些数据构建一个堆叠的三维条形图。但是,使用bar3(A,'堆叠')创建了一行50个条,而我希望这些条绘制在大小为5(垂直)x 10(水平)的网格坐标处。因此,该行中的第一根钢筋位于位置(1,1),第二根钢筋位于位置(1,2),第11根钢筋位于位置(2,1),依此类推,直到第50根钢筋位于位置(5,10)。我似乎找不到在Matlab中实现这一点的方法,这可能吗


提前谢谢你

我同意@cris,有更好的方法来表示您的数据。但是,如果您仍然希望使用三维条形图,则类似的方法也可以:

figure
hold on

for i = 1:5
    Ai = A(10*(i-1)+1:10*i,:);
    h = bar3(1:10,Ai,'stacked');

    for ih = 1 :length(h)
        x = get(h(ih), 'Xdata');
        set(h(ih), 'Xdata', x+i-1);
    end

end
view(3)

那是个糟糕的主意。三维条形图应该是非法的,堆叠条形图也应该是非法的。因为既不允许清晰读取数据点,也不允许它们之间的关系。有更好的方法来展示你的数据。非常感谢Jorge,非常有用。我最终听从了克里斯的建议,没有使用它!