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

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

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

Sample axes toolbar

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

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

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

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

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

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

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

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

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

Настройте встроенные взаимодействия

Большинство типов осей включает набор по умолчанию встроенных взаимодействий, которые соответствуют определенным жестам. Взаимодействия, которые доступны, зависят от содержимого осей. Наиболее оси декартовой системы координат включают взаимодействия для прокрутки для масштабирования, наводя или щелкая, чтобы отобразить всплывающие подсказки и перетаскивание к панорамированию (в 2D представлении) или вращаться (в 3-D представлении). Можно заменить набор по умолчанию на новый набор взаимодействий, но вы не можете получить доступ или изменить любое из взаимодействий в наборе по умолчанию.

Чтобы заменить взаимодействия по умолчанию, установите Interactions свойство осей к массиву объектов взаимодействия. Выберите совместимую комбинацию объектов взаимодействия из следующей таблицы. Чтобы удалить все взаимодействия из осей, установите свойство на пустой массив ([]).

Объект взаимодействияОписаниеСовместимые взаимодействия
panInteractionПанорамирование в рамках графика путем перетаскивания.Все кроме regionZoomInteraction и rotateInteraction
rulerPanInteractionПанорамируйте ось путем перетаскивания его.Все
zoomInteractionИзменение масштаба путем прокрутки или зажимания.Все
regionZoomInteractionМасштабируйте в прямоугольную область путем перетаскивания.
(Только для 2D Декартовых графиков)
Все кроме panInteraction и rotateInteraction
rotateInteractionВращайте график путем перетаскивания его.Все кроме panInteraction и regionZoomInteraction
dataTipInteractionОтобразите всплывающие подсказки путем наведения, щелкнув, или ответвление.Все

Например, создайте график, содержащий 1 000 рассеянных точек.

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

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

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

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

The same scatter plot with a rectangle surrounding some points

Смотрите также

Функции

Свойства

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте