您可以交互方式探索和编辑绘制的数据以改进数据的视觉显示或显示有关数据的其他信息。可用的交互取决于轴的内容,但通常包括缩放,平移,旋转,数据提示,数据刷头和恢复原始视图。
某些类型的交互可通过轴工具栏获得。当您将悬停在图表区域上时,工具栏会出现在轴的右上角。
其他类型的交互被内置到坐标轴中,可以通过手势来实现,比如通过拖动来平移或通过滚动来缩放。这些交互与坐标轴工具栏中的交互是分开控制的。
创建图表时,您可以通过多种方式控制可用交互集:
在R2018A和以前的版本中,许多交互选项出现在图形工具栏中而不是轴工具栏中。此外,在先前的版本中,轴内没有互动。
要显示或隐藏轴工具栏,请设置可见
财产的Axestoolbar.
对象'在'
或“关闭”
, 分别。例如,隐藏当前轴的工具栏:
甘氨胆酸ax =;ax.Toolbar.Visible =“关闭”;
您可以使用使用的轴工具栏中可用的选项AXTOOLBAR.
和axtoolbarbtn
功能。
例如,为轴工具栏添加自定义状态按钮,该工具栏可打开和关闭轴网格线。首先,创建一个程序文件mycustomstatebutton.m.
。在程序文件中:
绘制随机数据。
控件创建轴的工具栏,该工具栏具有放大、缩小和恢复视图的选项AXTOOLBAR.
函数。
使用该工具栏添加一个空状态按钮axtoolbarbtn
函数。返回ToolbarStateButton
对象。
通过设置,指定状态按钮的图标,工具提示和回调函数图标
那工具提示
,valuechangedfcn.
属性。本示例使用图标,您必须先保存为调用的图像文件
mygridicon.png.
在你的道路上。
运行程序文件时,单击图标以打开和关闭网格线。
函数Mycustomstatebutton plot(rand(5)) ax = gca;结核病= axtoolbar (ax, {'放大'那'缩小'那'restoreview'});btn = axtoolbarbtn(结核病,“状态”);btn.icon =“mygridicon.png”;btn.tooltip =.'网格线';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.
回调。
大多数类型的轴都包含一组默认的内置交互,对应于特定的手势。可用的交互取决于坐标轴的内容。大多数笛卡尔轴包括滚动以缩放、悬停或单击以显示数据提示、拖动以平移(在2d视图中)或旋转(在3d视图中)的交互。可以用新的交互集替换默认集,但不能访问或修改默认集中的任何交互。
要更换默认交互,请设置的相互作用
属性设置为交互对象数组的轴。从下表中选择一个兼容的交互对象组合。若要删除坐标轴上的所有交互,请将属性设置为空数组([]
)。
互动对象 | 描述 | 兼容的互动 |
---|---|---|
panInteraction |
通过拖动在图表内平移。 | 所有人除外regionZoomInteraction 和rotateInteraction |
Rulerpaninteraction. |
通过拖动轴来平移它。 | 所有 |
zoominteraction. |
通过滚动或捏合来缩放。 | 所有 |
regionZoomInteraction |
通过拖动缩放到矩形区域。 (仅适用于2-D Cartesian图表) |
所有人除外panInteraction 和rotateInteraction |
rotateInteraction |
通过拖动图表来旋转图表。 | 所有人除外panInteraction 和regionZoomInteraction |
dataTipInteraction |
通过悬停,单击或窃听显示数据提示。 | 所有 |
例如,创建包含1000个分散点的曲线图。
x = 1:500;y = randn(1,500);Y2 = 5 * RANDN(1,500)+ 10;绘图(x,y,'。', x, y2,'。'的)
默认情况下,这个图形有一组交互,包括在图表区域内拖动到平移。但是,因为情节有密集的点集合,更有用的交互可能包括允许你放大情节的特定区域的交互。的regionZoomInteraction
对象提供此功能。属性的数组替换当前轴的默认交互集regionZoomInteraction
对象。
甘氨胆酸ax =;Ax.interActions = [zoominteraction regionzoominteraction rulerpaninteraction];
现在,在绘图区域内拖动定义了缩小的矩形区域。