【问题标题】:Matlab: how to plot a stacked 3D bar plot in (x,y,z)-coordinates?Matlab:如何在(x,y,z)坐标中绘制堆叠的 3D 条形图?
【发布时间】:2013-12-30 11:11:21
【问题描述】:

我想在三维坐标中绘制一个堆叠的 3D 条形图,即给定 x 和 y,z 是一个堆叠的 3D 条形图。似乎 Matlab 只支持二维坐标中的这种绘图。

例如,如何使用以下数据集在 (x,y,z) 空间中绘制这样一个堆叠的 3D 条?

    x, y, z
    1, 2, (3+4)
    1, 1, (5+6)
    2, 1, (1+1)

谢谢!

【问题讨论】:

  • 您已经看过bar3 examples?或者你还想要什么,那里的例子没有涵盖什么?
  • 是的,我有。 “具有堆叠样式的 3-D 条形图”的示例在坐标方面显然是二维的。正如我在问题中所描述的,我想在 (x, y) 平原上指定一些点,然后在这些指定点处绘制堆积条形图。换句话说,给定 x 和 y,绘制 z,它是一个堆积条形。

标签: matlab 3d stack


【解决方案1】:

您可以采用两种通用方法...

  1. 绘制您自己的条形(即长方体):您可以创建一个函数,该函数采用一组值并在这些点处绘制长方体表面。有几种方法可以创建基本的 3D 立方体,在 this questionthis MATLAB Newsgroup thread 中有介绍。您只需要相应地缩放、移动和重新着色立方体表面。如果这似乎是一项艰巨的任务,那么……

  2. 制作多个 BAR3 图,并相应地修改每个图: This question 介绍了如何制作堆叠条形图的网格。在您的情况下,您可能不想要一个完整的网格,而是分散在一个区域的不同坐标处的稀疏堆叠条。在这种情况下,您可以通过为z 创建二维数据集来格式化您的数据以使用上述问题中的解决方案,并在您不想要任何条形的地方填充零。然后,您可以使用this question 中的解决方案在每个步骤中删除不需要的零值条。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    相关资源
    最近更新 更多