Интерактивность диаграммы управления

Можно интерактивно исследовать и редактировать построенные данные для улучшения визуального отображения данных или получения дополнительной информации о данных. Доступные взаимодействия зависят от содержимого осей, но обычно включают изменение масштаба, панорамирование, вращение, всплывающие подсказки, окрашивание данных и восстановление исходного представления.

Некоторые типы взаимодействий доступны через панель инструментов осей. Панель инструментов появится в правом верхнем углу осей при наведении указателя мыши на область графика.

Sample axes toolbar

Другие типы взаимодействий встроены в оси и доступны через жесты, такие как перетаскивание к панорамированию или прокрутка для масштабирования. Этими взаимодействиями управляют отдельно от взаимодействий на панели инструментов осей.

Когда вы создаете график, можно управлять набором доступных взаимодействий несколькими способами:

В R2018a и предыдущих релизах многие опции взаимодействия появляются на панели инструментов рисунка вместо панели инструментов осей. Кроме того, в предыдущих релизах ни одно из взаимодействий не встроено в оси.

Показать или скрыть панель инструментов осей

Чтобы показать или скрыть панель инструментов осей, установите Visible свойство AxesToolbar объект к 'on' или 'off', соответственно. Для примера скрыть панель инструментов для текущей системы координат:

ax = gca;
ax.Toolbar.Visible = 'off';

Настройка панели инструментов осей

Можно настроить опции, доступные на панели инструментов осей, используя axtoolbar и axtoolbarbtn функций.

Примечание

Пользовательские панели инструментов не отображаются на рисунках в Live Editor. Чтобы увидеть пользовательскую панель инструментов, откройте рисунок в отдельном окне рисунка.

Например, добавьте пользовательскую кнопку состояния для панели инструментов осей, которая включает и отключает линии сетки осей. Сначала создайте программный файл с именем mycustomstatebutton.m. В программном файле:

  • Постройте график случайных данных.

  • Создайте панель инструментов для осей с опциями масштабирования, масштабирования и восстановления вида с помощью axtoolbar функция.

  • Добавьте пустую кнопку состояния на панель инструментов, используя axtoolbarbtn функция. Верните ToolbarStateButton объект.

  • Задайте значок, инструмент совета и функцию обратного вызова для кнопки состояния путем установки Icon, Tooltip, и ValueChangedFcn свойства. В этом примере используетсяgrid значок, который необходимо сначала сохранить как файл изображения 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

Line plot with grid lines

Включите или отключите встроенные взаимодействия

Чтобы контролировать, включен ли набор встроенных взаимодействий в графике, используйте 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,'.')

Scatter plot displaying two sets of data using two colors

По умолчанию этот график имеет набор взаимодействий, которые включают перетаскивание к панорамированию в области диаграммы. Однако, поскольку график имеет плотный набор точек, более полезный набор взаимодействий может включать в себя тот, который позволяет вам масштабировать конкретные области графика. The regionZoomInteraction предоставляет эту функциональность. Замените набор взаимодействий по умолчанию для текущей системы координат на массив, который включает в себя regionZoomInteraction объект.

ax = gca;
ax.Interactions = [zoomInteraction regionZoomInteraction rulerPanInteraction];

Теперь перетаскивание в пределах области графика задает прямоугольную необходимую область для масштабирования.

The same scatter plot with a rectangle surrounding some points

См. также

Функции

Свойства

Похожие темы