Можно интерактивно исследовать и редактировать построенные данные для улучшения визуального отображения данных или получения дополнительной информации о данных. Доступные взаимодействия зависят от содержимого осей, но обычно включают изменение масштаба, панорамирование, вращение, всплывающие подсказки, окрашивание данных и восстановление исходного представления.
Некоторые типы взаимодействий доступны через панель инструментов осей. Панель инструментов появится в правом верхнем углу осей при наведении указателя мыши на область графика.
Другие типы взаимодействий встроены в оси и доступны через жесты, такие как перетаскивание к панорамированию или прокрутка для масштабирования. Этими взаимодействиями управляют отдельно от взаимодействий на панели инструментов осей.
Когда вы создаете график, можно управлять набором доступных взаимодействий несколькими способами:
В R2018a и предыдущих релизах многие опции взаимодействия появляются на панели инструментов рисунка вместо панели инструментов осей. Кроме того, в предыдущих релизах ни одно из взаимодействий не встроено в оси.
Чтобы показать или скрыть панель инструментов осей, установите Visible
свойство AxesToolbar
объект к 'on'
или 'off'
, соответственно. Для примера скрыть панель инструментов для текущей системы координат:
ax = gca;
ax.Toolbar.Visible = 'off';
Можно настроить опции, доступные на панели инструментов осей, используя axtoolbar
и axtoolbarbtn
функций.
Примечание
Пользовательские панели инструментов не отображаются на рисунках в Live Editor. Чтобы увидеть пользовательскую панель инструментов, откройте рисунок в отдельном окне рисунка.
Например, добавьте пользовательскую кнопку состояния для панели инструментов осей, которая включает и отключает линии сетки осей. Сначала создайте программный файл с именем mycustomstatebutton.m
. В программном файле:
Постройте график случайных данных.
Создайте панель инструментов для осей с опциями масштабирования, масштабирования и восстановления вида с помощью axtoolbar
функция.
Добавьте пустую кнопку состояния на панель инструментов, используя axtoolbarbtn
функция. Верните ToolbarStateButton
объект.
Задайте значок, инструмент совета и функцию обратного вызова для кнопки состояния путем установки Icon
, Tooltip
, и ValueChangedFcn
свойства. В этом примере используется значок, который необходимо сначала сохранить как файл изображения mygridicon.png
на вашем пути.
При запуске программного файла щелкните значок, чтобы включить и выключить линии сетки.
function mycustomstatebutton plot(rand(5)) ax = gca; tb = axtoolbar(ax,{'zoomin','zoomout','restoreview'}); btn = axtoolbarbtn(tb,'state'); btn.Icon = 'mygridicon.png'; btn.Tooltip = 'Grid Lines'; btn.ValueChangedFcn = @customcallback; function customcallback(src,event) switch src.Value case 'off' event.Axes.XGrid = 'off'; event.Axes.YGrid = 'off'; event.Axes.ZGrid = 'off'; case 'on' event.Axes.XGrid = 'on'; event.Axes.YGrid = 'on'; event.Axes.ZGrid = 'on'; end end end
Чтобы контролировать, включен ли набор встроенных взаимодействий в графике, используйте disableDefaultInteractivity
и enableDefaultInteractivity
функций. Иногда MATLAB® автоматически отключает встроенные взаимодействия. Например, они могут быть отключены для графиков, которые имеют специальные функции, или когда вы реализуете определенные коллбэки, такие как WindowScrollWheelFcn
.
Большинство типов осей включают набор встроенных взаимодействий по умолчанию, которые соответствуют определенным жестам. Доступные взаимодействия зависят от содержимого осей. Большинство Декартовых осей включают взаимодействия для прокрутки для масштабирования, зависания или щелчка, чтобы отобразить всплывающие подсказки, и перетаскивание к панорамированию (на 2-D виде) или повернуть (на 3-D виде). Можно заменить набор по умолчанию новым набором взаимодействий, но вы не можете получить доступ или изменить любое взаимодействие в наборе по умолчанию.
Примечание
Настройка или замена встроенных взаимодействий не поддерживаются в Live Editor.
Чтобы заменить взаимодействия по умолчанию, установите Interactions
свойство осей для массива объектов взаимодействия. Выберите совместимую комбинацию объектов взаимодействия из следующей таблицы. Чтобы удалить все взаимодействия из осей, установите свойство на пустой массив ([]
).
Объект взаимодействия | Описание | Совместимые взаимодействия |
---|---|---|
panInteraction | Панорамирование на графике осуществляется перетаскиванием. | Все кроме regionZoomInteraction и rotateInteraction |
rulerPanInteraction | Панорамировать ось путем перетаскивания. | Все |
zoomInteraction | Масштабирование путем прокрутки или защемления. | Все |
regionZoomInteraction | Изменение масштаба прямоугольной области путем перетаскивания. (Только для 2-D Декартовых графиков) | Все кроме panInteraction и rotateInteraction |
rotateInteraction | Повернуть график путем перетаскивания. | Все кроме panInteraction и regionZoomInteraction |
dataTipInteraction | Отображение всплывающих подсказок путем зависания, щелчка или касания. | Все |
Например, создать график, содержащий 1000 рассеянных точек.
x = 1:500; y = randn(1,500); y2 = 5*randn(1,500) + 10; plot(x,y,'.',x,y2,'.')
По умолчанию этот график имеет набор взаимодействий, которые включают перетаскивание к панорамированию в области диаграммы. Однако, поскольку график имеет плотный набор точек, более полезный набор взаимодействий может включать в себя тот, который позволяет вам масштабировать конкретные области графика. The regionZoomInteraction
предоставляет эту функциональность. Замените набор взаимодействий по умолчанию для текущей системы координат на массив, который включает в себя regionZoomInteraction
объект.
ax = gca; ax.Interactions = [zoomInteraction regionZoomInteraction rulerPanInteraction];
Теперь перетаскивание в пределах области графика задает прямоугольную необходимую область для масштабирования.