[英]Use bar3 instead of bar to plot multiple data in Matlab
我有3个矩阵A
, B
和C
,每个矩阵的大小均为21x2
。 我使用bar
分别绘制每个图。 我想知道如何使用bar3
将三个绘制在一起?
因此,使用此代码:
A=rand(21,2);
B=rand(21,2);
C=rand(21,2);
fig=figure();b1=bar(A);
fig2=figure();b2=bar(B);
fig3=figure();b3=bar(C);
将生成以下三个数字:
A:
B:
C:
我想做的是我希望它们都是相同的图形,但在z方向上彼此后方绘制,像这样
这个想法是创建新的变量,该变量包含每行要插入NaN的所有数据。 只是这一更改为您提供了几乎解决方案。
for ii=1:size(A,1)
A1((ii-1)*3+1)=A(ii,1);
A1((ii-1)*3+2)=A(ii,2);
A1((ii-1)*3+3)=NaN;
B1((ii-1)*3+1)=B(ii,1);
B1((ii-1)*3+2)=B(ii,2);
B1((ii-1)*3+3)=NaN;
C1((ii-1)*3+1)=C(ii,1);
C1((ii-1)*3+2)=C(ii,2);
C1((ii-1)*3+3)=NaN;
end
h=bar3(horzcat(A1',B1',C1'))
但是,我猜您也想修改颜色。 为此,您可以使用get(h(nrow),'Cdata')
每个条形行的颜色数据。
使用此技巧和您自己的色图,您应该能够独立为条形着色。 这不是简单明了,但是如果简单的话,有趣之处在哪里!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.