首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将3D矩阵绘制为3D条形图时出错

将3D矩阵绘制为3D条形图时出错
EN

Stack Overflow用户
提问于 2012-08-24 02:51:50
回答 1查看 2.8K关注 0票数 0

嗨,我有一个3D矩阵daily_renewables_excess,我正在尝试绘制一个轴上x,y和z维度的3D条形图。大小(Daily_renewables_excess)是11,7,10。所以我试图得到一个三维条形图,它有11个x间隔x,7个y间隔和10个z间隔。

然而,当我尝试

代码语言:javascript
复制
figure;
bar3(daily_renewables_excess(:,:,:))

我得到一个错误,说"Error using bar3 (第39行)输入必须是2-D“。

根据我对文档的理解,bar3函数将如上所述绘制3D条形图。我需要以某种方式重新排列矩阵吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-24 03:55:54

由于您有一个3D矩阵(体积),您不能同时显示3个间隔(3个轴)+条形图的比例值(第4个变量)。这将相当于绘制一个4D图(例如,使用颜色对第4维进行颜色编码,使用条形图大小对其进行尺寸编码,甚至垂直堆叠)。

例如,以下体积D的大小为[11x10x7],您可以通过在第3 (z)维中建立索引来获得7个bar3

代码语言:javascript
复制
% random 3D input
D = randi(10, [11, 10, 7]);
[m,n,l] = size(D);
% plot bar for first z-
figure; bar3(D(:,:,1));

相反,您可以在x-y-维度中进行重塑,进行排序(以便保留有序间隔的概念(分别以x-y-表示),并使用bar3绘制结果矩阵。

代码语言:javascript
复制
% reshape to x
Dx = reshape(D, m*l, n);
Dx = sort(Dx, 1, 'descend'); 
figure; bar3(Dx)

代码语言:javascript
复制
% reshape to y
Dy = reshape(D, m, n*l);
Dy = sort(Dy, 2, 'descend'); 
figure; bar3(Dy)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12098223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档