Ric*_*ard 4 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
Run Code Online (Sandbox Code Playgroud)
在(A)我的情节的垂直范围是[1,10].
在(B)我的情节的垂直范围是[0,20].
在(C)处,垂直范围再次[1,10].
我喜欢该图从步骤(A)到(B)自动缩放.我不喜欢从(B)到(C)的自动缩放 - 它让事情跳得太多了.
有没有办法设定情节的规模扩大但从不收缩?
在我看来,这看起来像:
set(gca,'XLimMode','auto_maxever');
Run Code Online (Sandbox Code Playgroud)
据我所知,Matlab没有像你描述的功能,但是...
您可以设置的完全限制X,并Y通过执行以下命令:
set(gca,'XLim',[x1 x2], 'YLim',[y1 y2]);
Run Code Online (Sandbox Code Playgroud)
同一命令的快速别名是:
axis([xmin xmax ymin ymax]);
Run Code Online (Sandbox Code Playgroud)
你还不如"冻结"在任何时候,你喜欢的,通过改变限制XLimMode,并YLimMode从Auto到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
Run Code Online (Sandbox Code Playgroud)
或者您可以使用另一个别名,它完全相同:
axis('manual');
Run Code Online (Sandbox Code Playgroud)
如果要连续采集数据,请考虑在每次更新前保存轴限制,然后执行手动缩放.