首页 文章

在Matlab中绘制网格上的3D条形图

提问于
浏览
1

我有一个矩阵,A,包含50行和4列,条目用整数填充 . 我的兴趣是从这些数据构建一个堆叠的3D条形图 . 但是,使用bar3(A,'stacked')会创建一个50条的行,而我希望将条形图绘制在大小为5(垂直)x 10(水平)的网格的坐标处 . 因此,行中的第一个柱位于(1,1)位置,第二个柱位于(1,2),第11个柱位于(2,1),依此类推,直到第50个柱位于(5,10) . 我似乎无法在Matlab中找到这样做的方法,这有可能吗?

先感谢您!

1 回答

  • 3

    我同意@cris,有更好的方法来表示您的数据 . 但是,如果你仍想使用3D条形图,这样的东西会起作用:

    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)
    

相关问题