2011-03-30 308 views
3

我在matlab中有一个Nx3矩阵,我想制作一个三维条形图,其中X和Y轴由第一和第二列的值确定矩阵,每个条的高度是在基质中的第三列和的条的数量由N确定在matlab中绘制三维条形图

换句话说,如果“数据”是则矩阵:

data(:, 1) % values of X-axis 
data(:, 2) % values of Y-axis 
data(:, 3) % values of each Z-axis bar 

和每个1:应该有一个长度(数据)

如何在MATLAB中做到这一点?

其次,作为这方面的一个变型,我该怎么做同样的事情,但这次直方图条成N个频点中的每个X,Y,Z的尺寸?即而不是每个点的条形图,只需将数据直方图分解到每个维度中的这些条目中,并为每个条形图绘制一个条形图。

非常感谢您的帮助。

+0

这里是一个[相关答案](https://stackoverflow.com/a/45287329/2627163)和[也是本](https://stackoverflow.com/questions/45423394/how-to-set- a-color-by-height-for-a-3d-bar-plot) – EBH 2017-07-31 19:53:46

回答

0

关于你提到的第一个问题,你可以实现类似于你的要求的东西,通过:

stem3 (data(:,1), data(:,2), data(:,3), 'marker', 'none', 'linewidth',10) 

不完全是吧,但会产生类似的效果。

要绘制“真实”的酒吧(如那些bar3地块),我想你将不得不使用(这是用来通过bar3阴谋吧)低级别的图形功能,如surface

关于你提到的第二个问题,我不知道我的理解---如果你计算的柱状图为每个维度,你结束了4维数据---每个维度的bin位置+的HIST计数本身。你想要绘制什么?

+0

有意义 - 我如何标记茎图的X,Y,Z轴?另外,你知道如何使用表面来制作真正的酒吧吗?我不知道如何表面可以使酒吧。有没有这样的例子? – user248237dfsf 2011-03-30 15:23:50

+0

stem3图的问题是它看起来不是三维的 - 酒吧只是线条,很难看到数据 – user248237dfsf 2011-03-30 15:24:51