【问题标题】:How do I add 2 Y axis to my MATLAB Plot?如何将 2 Y 轴添加到我的 MATLAB Plot?
【发布时间】:2013-10-09 07:29:20
【问题描述】:

我知道以前有人问过这个问题 - 但他们都没有处理带有 2 Y 轴的 3D 图。我的问题是 - How do I add a 2D Plot along with a surface or mesh plot in MATLAB?this 的延续。

我现在已经成功地添加了一个二维图和一个曲面图。见下图—— 现在我的问题是 2D 绘图的范围如此之高,以至于 3D 绘图被缩小到看起来只不过是天花板上的一架飞机。它应该有像我上面提到的问题中的数字一样的变化。

如何为 2D 绘图提供不同的 Y 轴,以便 3D 绘图不会像这里那样缩小。

【问题讨论】:

  • 有什么理由不把表面值乘以某个大常数?
  • 轴值没有意义。
  • 你为什么不把你的数据标准化以便可以使用相同的轴?
  • 它们是标准化的。一组数据介于 0.9 和 1 之间,另一组介于 0.2 和 0.5 之间。在上面的图片中,我将 2D 图的 0 移动了 0.5 以查看任何内容。我有 106 个(第 4 维)这样的图表——这只是一个。有些更好,有些更差(视觉上)。
  • 归一化我的意思是,最大值设置为 1,最小值设置为零。认为最终结果看起来只是没有额外的轴相同......

标签: matlab graph plot


【解决方案1】:

您可以使用 DataAspectRatio 属性来完成此操作。从上一篇文章中的示例中汲取灵感,如果我们有:

 z=peaks(100);
 x1=linspace(0,100);
 plot3(x1,0*ones(1,numel(x1)),40*sin(x1))
 surface(z+40, 'edgecolor', 'none');

然后你可以使用

set( gca, 'dataaspectratio', [1.25 1.25 .7] )
view( [-37.5 18] )

在某些情况下可以帮助恢复曲面图上的一些范围。但是,这种方法在非常极端的情况下是行不通的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多