4

假设我有以下 Matlab 代码:

figure;
a=plot(1:10); %A
pause();
set(a,'ydata',1:2:20); %B
pause();
set(a,'ydata',1:10); %C

在 (A) 处,我的绘图的垂直范围是 [1,10]。
在 (B) 处,我的绘图的垂直范围是 [0,20]。
在 (C) 处,垂直范围再次为 [1,10]。

我喜欢情节从步骤(A)自动缩放到(B)。我不喜欢从 (B) 到 (C) 的自动缩放——它让事情跳得太多。

有没有办法让情节的规模扩大但从不缩小?

在我看来,这看起来像:

set(gca,'XLimMode','auto_maxever');
4

1 回答 1

6

据我所知,Matlab 没有您描述的功能,但是...

您可以通过执行以下命令准确设置 和 的限制XY

set(gca,'XLim',[x1 x2], 'YLim',[y1 y2]);

相同命令的快速别名是:

axis([xmin xmax ymin ymax]);

您还可以通过将XLimModeand更改YLimModeAuto来随时“冻结”限制Manual

figure();
a=plot(1:10); %A
pause();
set(a,'ydata',1:2:20); %B
pause();
set(gca,'XLimMode','manual');
set(gca,'YLimMode','manual');
set(a,'ydata',1:10); %C

或者您可以使用另一个别名,它的作用完全相同:

axis('manual');

如果连续采集数据,请考虑在每次更新之前保存轴限制,然后执行手动缩放。

于 2012-09-21T14:16:36.883 回答