在Matlab中绘制3D条形图

3

我在Matlab中有一个Nx3矩阵,我想将其制作成一个三维条形图,其中X和Y轴由矩阵的第一列和第二列的值确定,每个条形的高度为矩阵的第三列,条形的数量由N决定。

换句话说,如果“data”是该矩阵,则:

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

对于每个1:length(data),应该有一个条形图。

我应该如何在MATLAB中实现这个功能?

其次,作为这个的变体,如何做同样的事情,但这一次将条形图直方化到每个X、Y、Z维度的N个bin中?也就是说,不是每个点都有一个条形图,而是将数据直方化到每个维度的那些bin中,并为每个bin绘制一个条形图。

非常感谢您的帮助。


这里有一个相关答案,还有这个 - EBH
1个回答

0
关于您的第一个问题,您可以通过以下方式实现类似于您的请求:
stem3 (data(:,1), data(:,2), data(:,3), 'marker', 'none', 'linewidth',10)

不完全是条形图,但产生了类似的效果。

要绘制“真实”的条形图(例如bar3绘制的那些),我认为您将不得不使用低级别的图形函数,例如surface(由bar3用于绘制条形图)。

关于您的第二个问题,我不确定我是否理解---如果您为每个维度计算直方图,则最终会得到4维数据---每个维度的bin位置+hist计数本身。您想绘制什么?


有道理 - 那么我如何为茎图的X、Y、Z轴加上标签呢?另外,您知道如何使用surface制作真正的条形图吗?我不知道surface如何制作条形图。有没有这方面的示例? - user248237
stem3图的问题在于它看起来不是三维的——条形图只是线条,很难看到数据。 - user248237

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接