【问题标题】:How to halt matlab plot3 scale如何停止matlab plot3 scale
【发布时间】:2018-11-23 16:41:03
【问题描述】:

我想使用plot3 函数绘制钟摆(改变位置)。不幸的是,当我的点在循环中改变位置并再次被绘制时,3d 绘图的比例也在变化,因此 x 轴取决于位置变化(取决于点的位置,它可以从 -1 到 -1.5 或从-1 到 -3) 并且 y 也会发生变化。只有 z 声明相同。结果是点在图形上跳跃并且不会产生钟摆的印象。这就是我的绘图方式:

plot3(0,0,0);
daspect([1,1,1]);
axis([-10, 10, -10, 10]);
scatter3(x(i)-rs, y(i)-rs, 0);

我尝试使用以下方法解决问题:

gca

set(fig, 'PaperPositionMode', 'auto');

但两者都无济于事。我也无法旋转图表,因为它正在被绘制并返回到之前的位置。

【问题讨论】:

    标签: matlab plot matlab-figure


    【解决方案1】:

    在绘图前尝试设置XLimYLimZLim 属性。例如,

    xlim=[-1 1];
    

    haxe = gca;
    haxe.XLim = [-1 1];
    

    此外,您可以将XLimModeYLimModeZLimMode 属性设置为manual。例如,

    haxe.XLimMode = 'manual'
    

    有关轴属性的更多信息,请参阅 MATLAB 的 axis properties 文档。

    【讨论】:

      【解决方案2】:

      这是一个 2D 的简短示例,您也可以轻松地将其应用于 3D:

      N = 50;
      x = [1:N;N:-1:1];
      x = repmat(x,2,1).';
      p = plot(x(1),1,'ob','MarkerFaceColor','b');
      xlim([0 51])
      for k = 2:numel(x)
          p.XData = x(k);
          drawnow
      end
      

      这里的关键是在循环之前设置xlim,然后只更新图中的相关数据(本例使用XData)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-11
        • 1970-01-01
        • 1970-01-01
        • 2010-12-17
        相关资源
        最近更新 更多