在Matlab中绘制网格上的三维条形图
我有一个矩阵a,它包含50行和4列,条目用整数填充。我的兴趣是从这些数据构建一个堆叠的三维条形图。但是,使用bar3(A,'堆叠')创建了一行50个条,而我希望这些条绘制在大小为5(垂直)x 10(水平)的网格坐标处。因此,该行中的第一根钢筋位于位置(1,1),第二根钢筋位于位置(1,2),第11根钢筋位于位置(2,1),依此类推,直到第50根钢筋位于位置(5,10)。我似乎找不到在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,有更好的方法来表示您的数据。但是,如果您仍
提前谢谢你 我同意@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,非常有用。我最终听从了克里斯的建议,没有使用它!