在Matlab中防止激进的自动缩放

时间:2012-09-21 14:14:44

标签: matlab plot scale matlab-figure

说我有以下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');

1 个答案:

答案 0 :(得分:6)

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

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

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

同一命令的快速别名是:

axis([xmin xmax ymin ymax]);

您可以随时“冻结”限制,将XLimModeYLimModeAuto更改为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');

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