Matlab 制造;“重置为原始视图”;使用xlim后缩小到整个范围

Matlab 制造;“重置为原始视图”;使用xlim后缩小到整个范围,matlab,plot,zooming,matlab-figure,Matlab,Plot,Zooming,Matlab Figure,在MATLAB中使用xlim时,设置的限制将成为“原始视图” 这意味着使用缩放工具单击鼠标右键,然后选择“重置为原始视图”不会缩小到整个范围 例如: figure(1); x = 0:0.1:6 plot( x, sin(x) ); % Example plot, x axis range [0, 6] xlim( [2, 4] ); % 'Zoom' into the x axis range [2, 4] 现在我可以四处平移,但是如果我想缩小整个范围(例如,[0,6]),我不能自

在MATLAB中使用
xlim
时,设置的限制将成为“原始视图”

这意味着使用缩放工具单击鼠标右键,然后选择“重置为原始视图”不会缩小到整个范围

例如:

figure(1); 
x = 0:0.1:6
plot( x, sin(x) ); % Example plot, x axis range [0, 6]
xlim( [2, 4] );    % 'Zoom' into the x axis range [2, 4]

现在我可以四处平移,但是如果我想缩小整个范围(例如,
[0,6]
),我不能自动这样做

我看到了两种可能的选择,但我找不到实现这两种选择的方法:

  • 不要使用
    xlim
    ,而是通过编程方式将
    缩放到绘图中。
    zoom
    功能只能接受比例因子输入,在缩放到类似于
    xlim
    的特定范围时似乎没有用处

  • 以某种方式更改“重置为原始视图”回调的默认行为。我不确定我是否想劫持这个回调,即使我可以


  • 有什么想法吗?

    一个选项是使用未记录的命令
    resetplotview

    doc resetplotview

    仅供内部使用。此功能可能在将来的版本中删除

    在执行
    xlim
    命令之前调用此函数

    figure(1); 
    x = 0:0.1:6
    plot( x, sin(x) ); % Example plot, x axis range [0, 6]
    resetplotview( gca, 'InitializeCurrentView' ) % Ensure we can reset the zoom
    xlim( [2, 4] );    % 'Zoom' into the x axis range [2, 4]
    
    这会产生所需的结果,单击“重置为原始视图”会缩小到x范围
    [0,6]
    ,但最初显示的x范围是
    [2,4]



    由于此函数是未记录的,所以具有内部构件的上下文可能会很有用。您可以
    编辑resetplotview
    以查看
    'InitializeCurrentView'
    选项的实现位置。本质上,它利用
    setappdata
    定义
    'matlab\u graphics\u resetplotview'
    属性,特别是
    XLim
    属性为
    'auto'
    。如果
    resetplotview
    功能被折旧,您可能可以手动执行此操作。

    一个选项是使用未记录的命令
    resetplotview

    doc resetplotview

    仅供内部使用。此功能可能在将来的版本中删除

    在执行
    xlim
    命令之前调用此函数

    figure(1); 
    x = 0:0.1:6
    plot( x, sin(x) ); % Example plot, x axis range [0, 6]
    resetplotview( gca, 'InitializeCurrentView' ) % Ensure we can reset the zoom
    xlim( [2, 4] );    % 'Zoom' into the x axis range [2, 4]
    
    这会产生所需的结果,单击“重置为原始视图”会缩小到x范围
    [0,6]
    ,但最初显示的x范围是
    [2,4]



    由于此函数是未记录的,所以具有内部构件的上下文可能会很有用。您可以
    编辑resetplotview
    以查看
    'InitializeCurrentView'
    选项的实现位置。本质上,它利用
    setappdata
    定义
    'matlab\u graphics\u resetplotview'
    属性,特别是
    XLim
    属性为
    'auto'
    。如果
    resetplotview
    功能已折旧,您可能可以手动执行此操作。

    是否以编程方式运行
    xlim auto
    选项?这重置了原始的、完整的range@Luis如果我想以编程方式设置限制(如示例中所示),但仍然启用缩放重置,则不会?如果在上述示例之后调用
    xlim auto
    ,它将“过早”重置为全范围。其目的是限制限制限制,但提供“重置”功能,就好像手动完成缩放是通过编程运行
    xlim auto
    a选项?这重置了原始的、完整的range@Luis如果我想以编程方式设置限制(如示例中所示),但仍然启用缩放重置,则不会?如果在上述示例之后调用
    xlim auto
    ,它将“过早”重置为全范围。其目的是限制限制限制,但提供“重置”功能,就像手动完成缩放一样