繁体   English   中英

使用bar3代替bar在Matlab中绘制多个数据

[英]Use bar3 instead of bar to plot multiple data in Matlab

我有3个矩阵ABC ,每个矩阵的大小均为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.

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