Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

zoom

启用缩放模式

说明

缩放模式允许您通过更改坐标区的范围来浏览数据。在 R2018b 之前的版本中,可以使用缩放模式来放大或缩小坐标区。使用 zoom 函数打开和关闭缩放模式,并设置其他基本选项。要进一步控制缩放模式行为,请返回并使用缩放对象。

从 R2018b 开始,您可以改用内置交互来放大和缩小。内置交互不要求您启用某种模式,并且比交互模式响应更快。有关内置交互的详细信息,请参阅对图的交互进行控制

大多数图支持缩放模式,包括线图、条形图、区域图、直方图和曲面图。支持缩放模式的图通常在坐标区工具栏中显示有放大 和缩小 图标。

创建对象

说明

示例

zoom option 启用或禁用当前图窗中所有坐标区的缩放模式。例如,zoom on 启用缩放模式,zoom xon 仅对 x 维度启用缩放模式,zoom off 禁用缩放模式。有关更多缩放模式选项,请参阅 option

当缩放模式打开时,要放大,请将光标放在要作为坐标区中心的位置,然后向上滚动或点击。要缩小,请向下滚动或按住 Shift 并点击。每次点击都将放大或缩小缩放因子的 2 倍。要放大某矩形区域,请点击并拖动。要将坐标区对象恢复为其基线缩放级别,请在坐标区内双击。

zoom 切换缩放模式。如果缩放模式处于禁用状态,则调用 zoom 将恢复最近使用的缩放选项 onxonyon

zoom(factor) 按指定的缩放因子缩放当前坐标区,而不影响缩放模式。通过将 factor 指定为大于 1 的值来放大。通过将 factor 指定为介于 0 和 1 之间的值来缩小。

zoom(fig,___) 为指定图窗中的所有坐标区设置缩放模式。将附加参数指定为 'on''off''out''reset''xon''yon' 或缩放因子。例如,使用 zoom(fig,'on') 为图窗 fig 启用缩放模式。

z = zoom 为当前图窗创建缩放对象。此语法对于控制缩放模式、移动和方向非常有用。

示例

z = zoom(fig) 为指定的图窗创建缩放对象。

输入参数

全部展开

目标图窗,指定为 Figure 对象。

缩放模式选项,指定为下列值之一:

  • 'on' - 启用缩放模式。

  • 'off' - 禁用缩放模式。不管模式如何,某些内置交互都默认处于启用状态。要禁用内置缩放交互,请使用 disableDefaultInteractivity 函数。

  • 'reset' - 将当前缩放级别设置为基线缩放级别。在设置基线缩放级别后,调用 zoom out、双击或从坐标区工具栏中选择 会将坐标区恢复为此缩放级别。

  • 'out' - 将当前坐标区恢复为其基线缩放级别。

  • 'xon' - 仅对 x 维度启用缩放模式。

  • 'yon' - 仅对 y 维度启用缩放模式。

缩放因子,指定为正数。通过将 factor 指定为大于 1 的正数来放大。通过将 factor 指定为介于 0 和 1 之间的正数来缩小。在这种情况下,坐标区按 1/factor 倍进行缩小。

属性

全部展开

允许放大和缩小的维度,指定为下列值之一:

  • 'both' - 允许在 xy 维度上缩放。

  • 'horizontal' - 仅允许在 x 维度上缩放。

  • 'vertical' - 仅允许在 y 维度上缩放。

此属性仅影响二维视图中的坐标区,例如当您调用 view([0 90]) 时。要控制三维视图中的缩放维度,请使用 ZoomInteraction 对象。

缩放方向,指定为下列值之一:

  • 'in' - 点击时放大。

  • 'out' - 点击时缩小。

当缩放模式启用时,无论 Direction 的值如何,您都可以使用滚轮来放大或缩小。

缩放模式,指定为 'off''on'

上下文菜单,指定为 ContextMenu 对象。使用此属性可在启用缩放模式的坐标区中通过右键点击来显示上下文菜单。使用 uicontextmenu 函数创建上下文菜单。

如果 RightClickAction 属性的值为 'InverseZoom',则此属性不起作用。

右键点击时要执行的操作,指定为下列值之一:

  • 'PostContextMenu' - 显示上下文菜单。

  • 'InverseZoom' - 右键点击时缩小。

设置 RightClickAction 属性可设置将来缩放对象的默认值。RightClickAction 的值在各 MATLAB® 会话之间保留。

缩放前要执行的函数,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性可在开始放大或缩小时执行代码。如果使用函数句柄指定此属性,则 MATLAB 将向回调函数传递两个参数:

  • figure - 您正在其中执行缩放操作的图窗对象。

  • axesStruct - 包含您正在其中执行缩放操作的坐标区的结构体。此结构体有一个字段 Axes,即您正在其中缩放的坐标区对象。如果在回调函数中不使用此参数,请用波浪号字符 (~) 替换它。

有关回调的详细信息,请参阅回调定义

缩放后执行的函数,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性在完成缩放后执行代码。如果使用函数句柄指定此属性,则 MATLAB 将向回调函数传递两个参数:

  • figure - 您正在其中执行缩放操作的图窗对象。

  • axesStruct - 包含您正在其中执行缩放操作的坐标区的结构体。此结构体有一个字段 Axes,即您正在其中缩放的坐标区对象。如果在回调函数中不使用此参数,请用波浪号字符 (~) 替换它。

有关回调的详细信息,请参阅回调定义

缩放隐藏回调,指定为下列值之一:

  • 函数句柄

  • 元胞数组,包含一个函数句柄和其他参数

  • 作为有效 MATLAB 命令或函数(在基础工作区中计算)的字符向量(不推荐)

使用此属性可隐藏在您定义的条件下的缩放。数值或逻辑输出 1 (true) 隐藏缩放,数值或逻辑输出 0 (false) 允许缩放。如果使用函数句柄指定此属性,则 MATLAB 将向回调函数传递两个参数:

  • axes - 您正在其中执行缩放操作的坐标区对象。

  • eventData - 空参数。在函数定义中将其替换为波浪号字符 (~) 以指示不使用此参数。

如果使用函数句柄指定此属性,则必须将此函数的输出赋给变量。

有关回调的详细信息,请参阅回调定义

此属性为只读

创建缩放对象时指定的 Figure 对象。如果未指定图窗,则 FigureHandle 是创建缩放对象时的当前图窗。

旧模式,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

将此属性设置为 'on' 会更改 UI 图窗中交互模式的行为,使其与传统图窗中模式的行为相匹配。有关详细信息,请参阅 enableLegacyExplorationModes

一旦该属性设置为 'on',它就无法再更改回 'off'

此属性仅适用于使用 uifigure 函数或 MATLAB Online™ 创建的缩放对象。

对象函数

使用缩放对象函数自定义图窗中坐标区对象的行为。对于所有缩放对象函数,坐标区和缩放对象必须与同一图窗相关联。

setAllowAxesZoom

setAllowAxesZoom(z,ax,tf) 根据 tf 中的逻辑值设置坐标区对象 ax 的缩放模式。axtf 都必须为标量。

使用 setAllowAxesZoom 对坐标区启用缩放不会对图窗启用缩放。要实现此目的,请设置缩放对象的 Enable 属性。

isAllowAxesZoom

tf = isAllowAxesZoom(z,ax) 以逻辑向量 tf 的形式返回向量 ax 中坐标区对象的缩放模式。tf 的大小与 ax 相同。

使用 isAllowAxesZoom 返回坐标区的缩放模式不会返回图窗的缩放模式。要实现此目的,请访问缩放对象的 Enable 属性。

setAxesZoomConstraint

setAxesZoomConstraint(z,ax,d) 根据维度值 d 设置标量坐标区对象 ax 的缩放维度。维度指定为下列值之一:'x''y''z''xy''xz''yz''unconstrained'。例如,setAxesZoomConstraint(z,ax,'xy') 仅允许您在 xy 维度上缩放。

使用 setAxesZoomConstraint 设置坐标区的缩放维度不会设置图窗的缩放维度。要实现此目的,请设置缩放对象的 Motion 属性。

getAxesZoomConstraint

d = getAxesZoomConstraint(z,ax)'x''y''z''xy''xz''yz''unconstrained' 形式返回标量坐标区对象 ax 的缩放维度 d

使用 getAxesZoomConstraint 返回坐标区的缩放维度不会返回图窗的缩放维度。要实现此目的,请访问缩放对象的 Motion 属性。

setAxes3DPanAndZoomStyle

setAxes3DPanAndZoomStyle(z,ax,s) 设置向量 ax 中坐标区对象的缩放样式 s。默认情况下,缩放样式为 'limits',即通过修改坐标区范围进行缩放。将缩放样式指定为 'camera' 可通过修改相机视角进行缩放。例如,使用 setAxes3DPanAndZoomStyle(z,ax,'camera')

有关相机视角的详细信息,请参阅相机图形术语

getAxes3DPanAndZoomStyle

s = getAxes3DPanAndZoomStyle(z,ax) 以字符元胞数组 s 的形式返回向量 ax 中坐标区对象的缩放样式。s 的元素以 'limits''camera' 的形式返回。

setAxesZoomMotion(不推荐)

不推荐使用此函数。请改用 setAxesZoomConstraint

setAxesZoomMotion(z,ax,d) 设置向量 ax 中坐标区对象的缩放维度 d。缩放维度指定为 'horizontal''vertical''both'

setAxesZoomMotion 设置的坐标区缩放维度与使用 Motion 属性设置的图窗缩放维度不同。

getAxesZoomMotion(不推荐)

不推荐使用此函数。请改用 setAxesZoomConstraint

d = getAxesZoomMotion(z,ax) 以字符元胞数组 d 的形式返回向量 ax 中坐标区对象的缩放维度。d 的元素以 'horizontal''vertical''both' 的形式返回。

使用 getAxesZoomMotion 返回的坐标区缩放维度与使用 Motion 属性返回的图窗缩放维度不同。

示例

全部折叠

绘制一些数据,放大,然后设置基线缩放级别。后续调用 zoom out 会将坐标区恢复为您设置的基线缩放级别。

例如,获取预定义曲面的坐标并对其绘图。启用缩放模式。

[X,Y,Z] = peaks(20);
surf(X,Y,Z)
zoom on

A surface with several peaks

通过点击最高峰值处将其放大。然后,设置基线缩放级别。

zoom reset

The surface zoomed into the tallest peak

再次点击最高峰值处放大,然后调用 zoom out

zoom out
坐标区将恢复为您设置的基线缩放级别。

创建一个在启用缩放模式时可以使用的上下文菜单。对于此示例,创建一个允许您关闭图窗的上下文菜单。

首先,获取预定义曲面的坐标并对其绘图。

[X,Y,Z] = peaks(20);
surf(X,Y,Z)

A surface with several peaks

使用 uicontextmenu 函数创建一个上下文菜单。然后,向该菜单添加一个项目。指定标签和用于关闭图窗的回调。

cm = uicontextmenu;
m = uimenu(cm);
m.Label = 'Close figure';
f = gcf;
m.Callback = @(src,event)close(f);

创建一个缩放对象。通过设置缩放对象的 ContextMenu 属性,将上下文菜单添加到缩放对象。然后,启用缩放模式。

z = zoom(f);
z.ContextMenu = cm;
z.Enable = 'on';

通过右键点击并选择关闭图窗来关闭图窗。

兼容性考虑

全部展开

从 R2020a 起不建议使用

在 R2006a 之前推出