繁体   English   中英

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

[英]Plotting 3D bars over a grid in Matlab

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

先感谢您!

我同意@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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM