主要内容

控制图交互性

您可以交互式地探索和编辑绘制的数据,以改进数据的可视化显示或显示关于数据的其他信息。可用的交互取决于轴的内容,但通常包括缩放、平移、旋转、数据提示、数据刷刷和恢复原始视图。

某些类型的交互可以通过axes工具栏进行。当您将鼠标悬停在图表区域上时,工具栏将出现在坐标轴的右上角。

样本轴工具栏

其他类型的交互被内置到坐标轴中,可以通过手势进行,例如拖动来平移或滚动来缩放。这些交互与坐标轴工具栏中的交互是分开控制的。

当你创建一个图表时,你可以通过以下几种方式控制可用的交互集:

在R2018a和以前的版本中,许多交互选项出现在图工具栏中,而不是轴工具栏中。另外,在以前的版本中,没有任何交互被构建到坐标轴中。

显示或隐藏轴工具栏

要显示或隐藏轴工具栏,请设置可见的属性AxesToolbar对象“上”“关闭”,分别。例如,隐藏当前轴的工具栏:

Ax = gca;ax.Toolbar.Visible =“关闭”

自定义轴工具栏

控件可自定义坐标轴工具栏中可用的选项axtoolbar而且axtoolbarbtn功能。

例如,为轴工具栏添加一个自定义状态按钮,用于打开和关闭轴网格线。首先,创建一个名为mycustomstatebutton.m。在程序文件中:

  • 绘制随机数据。

  • 控件为轴创建一个工具栏,其中具有放大、缩小和恢复视图的选项axtoolbar函数。

  • 属性将空状态按钮添加到工具栏axtoolbarbtn函数。返回ToolbarStateButton对象。

  • 属性为状态按钮指定图标、工具提示和回调函数图标工具提示,ValueChangedFcn属性。本例使用网格图标,必须先将其保存为名为mygridicon.png在你的路上。

运行程序文件时,单击图标以打开和关闭网格线。

函数Mycustomstatebutton plot(rand(5)) ax = gca;TB = axtoolbar(ax,{“zoomin”“zoomout”“restoreview”});BTN = axtoolbarbtn(tb,“状态”);btn。图标=“mygridicon.png”;btn。工具提示=“网格线”;btn。ValueChangedFcn = @customcallback;函数customcallback (src、事件)开关src。价值情况下“关闭”event.Axes.XGrid =“关闭”;event.Axes.YGrid =“关闭”;event.Axes.ZGrid =“关闭”情况下“上”event.Axes.XGrid =“上”;event.Axes.YGrid =“上”;event.Axes.ZGrid =“上”结束结束结束

用网格线绘制直线

启用或禁用内置交互

要控制是否在图表中启用一组内置交互,请使用disableDefaultInteractivity而且enableDefaultInteractivity功能。有时MATLAB®自动禁用内置交互。例如,对于具有特殊功能的图表,或者当您实现某些回调(如WindowScrollWheelFcn回调。

自定义内置交互

大多数类型的轴都包含一组默认的内置交互,这些交互对应于特定的手势。可用的交互取决于轴的内容。大多数笛卡尔轴都包括滚动以缩放、悬停或单击以显示数据提示、拖动以平移(在二维视图中)或旋转(在三维视图中)的交互。您可以用一组新的交互替换默认集,但是不能访问或修改默认集中的任何交互。

要替换默认交互,请设置的相互作用属性设置为交互对象数组。从下表中选择一个兼容的交互对象组合。若要删除轴上的所有交互,请将属性设置为空数组([]).

交互对象 描述 兼容的交互
panInteraction 通过拖动在图表中进行平移。 除了regionZoomInteraction而且rotateInteraction
rulerPanInteraction 通过拖动轴来平移轴。 所有
zoomInteraction 通过滚动或捏来放大。 所有
regionZoomInteraction 通过拖动缩放到矩形区域。
(只适用于二维笛卡儿图)
除了panInteraction而且rotateInteraction
rotateInteraction 拖动图表旋转图表。 除了panInteraction而且regionZoomInteraction
dataTipInteraction 通过悬停、单击或轻按显示数据提示。 所有

例如,创建一个包含1000个分散点的图。

X = 1:500;Y = randn(1500);Y2 = 5*randn(1500) + 10;情节(x, y,“。”, x, y2,“。”

用两种颜色显示两组数据的散点图

默认情况下,该图表有一组交互,其中包括在图表区域内拖动到平移。但是,由于图表有密集的点集合,更有用的交互集可能包括允许您放大到图表的特定区域的交互集。的regionZoomInteraction对象提供此功能。属性的数组替换当前轴的默认交互集regionZoomInteraction对象。

Ax = gca;斧子。交互= [zoomInteraction regionZoomInteraction rulerPanInteraction];

现在,在绘图区域内拖动将定义一个需要放大的矩形区域。

同样的散点图,一些点周围有一个矩形

另请参阅

功能

属性

相关的话题

Baidu
map