Legend Properties

Внешний вид и поведение легенды

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

plot(rand(3))
lgd = legend('a','b','c');
c = lgd.TextColor;
lgd.TextColor = 'red';

Положение и размещение

расширить все

Расположение относительно осей, заданное как одно из значений местоположения, перечисленных в этой таблице.

ЗначениеОписание
'north'Внутренняя верхняя часть осей
'south'Внутреннее дно осей
'east'Внутри справа от осей
'west'Внутри слева от осей
'northeast'Внутри справа вверху от осей (по умолчанию для 2-D осей)
'northwest'Внутри слева сверху от осей
'southeast'Внутри справа внизу от осей
'southwest'Внутри внизу-слева от осей
'northoutside'Над осями
'southoutside'Под осями
'eastoutside'Справа от осей
'westoutside'Слева от осей
'northeastoutside'Внешний верхний правый угол осей (по умолчанию для 3-D осей)
'northwestoutside'Внешний левый верхний угол осей
'southeastoutside'Внешний нижний правый угол осей
'southwestoutside'Внешний левый нижний угол осей
'best'Внутренние оси, где меньше всего конфликтуют с данными на графике
'bestoutside'Внешний верхний правый угол осей (когда легенда имеет вертикальную ориентацию) или ниже осей (когда легенда имеет горизонтальную ориентацию)
'layout'Плитка в плитке графика размещения. Чтобы переместить легенду в другую плитку, установите Layout свойство легенды.
'none'Определяется Position свойство. Используйте Position свойство для задания пользовательского расположения.

Пример: legend('Location','northeastoutside')

Ориентация, заданная как одно из следующих значений:

  • 'vertical' - Стекать элементы легенды вертикально. Если в легенде несколько столбцов, расположите элементы сверху вниз вдоль каждого столбца.

  • 'horizontal' - Список элементов легенды один за другим. Если легенда имеет несколько столбцов, расположите элементы слева направо вдоль каждой строки.

Пример: legend('Orientation','horizontal')

Количество столбцов в виде положительного целого числа. Если элементов легенды недостаточно для заполнения заданного количества столбцов, количество отображаемых столбцов может быть меньше.

Используйте Orientation свойство для управления отображением элементов легенды в порядке вдоль каждого столбца или вдоль каждой строки.

Пример: lgd.NumColumns = 3

Режим выбора для NumColumns значение, заданное как одно из следующих значений:

  • 'auto' - Автоматический выбор значения.

  • 'manual' - Используйте заданное вручную значение. Чтобы задать значение, установите NumColumns свойство.

Пользовательское расположение и размер, заданные как четырехэлементный вектор формы [left bottom width height]. Первые два значения, left и bottomзадайте расстояние от нижнего левого угла рисунка до нижнего левого угла легенды. Последние два значения, width и height, задайте размерности легенды. The Units свойство определяет модули.

Если вы задаете Position свойство, затем MATLAB® автоматически изменяет Location свойство к 'none'.

Пример: legend({'A','B'},'Position',[0.2 0.6 0.1 0.2])

Примечание

Установка этого свойства не влияет, когда родительский контейнер является TiledChartLayout.

Позиционные модули, заданные как одно из значений в этой таблице.

UnitsОписание
'normalized' (по умолчанию)Нормировано относительно контейнера, который обычно является рисунком. Нижний левый угол рисунка преобразуется в (0,0) и правый верхний угол преобразуется в (1,1). Изменение размера рисунка обновляет значения Position вектор.
'inches'Дюймы.
'centimeters'Сантиметры.
'characters'

На основе размера символа системного шрифта по умолчанию.

  • Ширина символа = ширина буквы x.

  • Высота символа = расстояние между базовыми линиями двух строк текста.

'points'Точки. Одна точка равна 1/72 дюйма.
'pixels'

Пиксели.

Начиная с R2015b, расстояния в пикселях не зависят от вашего системного разрешения в Windows® и системы Macintosh.

  • В системах под управлением Windows пиксель составляет 1/96 дюйма.

  • В системах Macintosh пиксель составляет 1/72 дюйма.

  • На Linux® систем, размер пикселя определяется вашим системным разрешением.

Все модули измерения выполняются из левого нижнего угла окна контейнера.

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

Если вы задаете Position и Units свойства как Name,Value пар при создании объекта, тогда важен порядок спецификации. Если вы хотите определить позицию с конкретными модулями, то вы должны задать Units свойство перед Position свойство.

Опции размещения, заданные как TiledChartLayoutOptions объект. Это свойство полезно, когда легенда находится в размещении мозаичного графика.

Чтобы поместить легенду в сетку размещения мозаичного графика, установите Tile свойство на TiledChartLayoutOptions объект. Для примера рассмотрим плиточный график размещения 3 на 3. Размещение имеет сетку плиток в центре, и четыре плитки по внешним краям. На практике сетка невидима, и внешние плитки не занимают пространства, пока вы не заполняете их осями или другими объектами.

Diagram of a 3-by-3 tiled chart layout.

Этот код помещает легенду lgd в третьей плитке сетки..

lgd.Layout.Tile = 3;

Чтобы поместить легенду в одну из окружающих плиток, задайте Tile свойство как 'north', 'south', 'east', или 'west'. Для примера установите значение 'east' помещает легенду в плитку справа от сетки.

lgd.Layout.Tile = 'east';

Если легенда не является дочерним элементом мозаичного графика размещения (для примера, если она является дочерним элементом рисунка), то это свойство пустое и не имеет никакого эффекта.

Метки

расширить все

Автоматическое обновление элементов легенды для отражения текущего состояния осей, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Автоматически добавлять элементы легенды для новых графических объектов, добавленных к осям. Удалите элементы легенды для графических объектов, удаленных из осей.

  • 'off' - Не добавляйте и не удаляйте автоматически элементы легенды.

Пример: legend({'A','B'},'AutoUpdate','off')

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

Заголовок легенды, возвращенный как текстовый объект легенды. Чтобы добавить заголовок легенды, установите String свойство текстового объекта legend. Чтобы изменить внешний вид заголовка, например стиль шрифта или цвет, задайте свойства текста легенды. Список см. в разделе Свойства текста.

plot(rand(3));
lgd = legend('line 1','line 2','line 3');
lgd.Title.String = 'My Legend Title';
lgd.Title.FontSize = 12;

Кроме того, используйте title функция для добавления заголовка и управления внешним видом.

plot(rand(3));
lgd = legend('line 1','line 2','line 3');
title(lgd,'My Legend Title','FontSize',12)

Текстовый интерпретатор, заданный в качестве одного из следующих значений:

  • 'tex' - Интерпретируйте символы с помощью подмножества разметки TeX.

  • 'latex' - Интерпретируйте символы с помощью разметки LaTeX.

  • 'none' - Отображать буквальные символы.

Синтаксис TeX

По умолчанию MATLAB поддерживает подмножество разметки TeX. Используйте разметку TeX, чтобы добавить суперскрипты и индексы, изменить тип и цвет шрифта и включить в текст специальные символы.

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

МодификаторОписаниеПример
^{ }Верхний индекс'text^{superscript}'
_{ }Индекс'text_{subscript}'
\bfПолужирный шрифт'\bf text'
\itИталический шрифт'\it text'
\slКосой шрифт (обычно тот же, что и курсивный шрифт)'\sl text'
\rmОбычный шрифт'\rm text'
\ fontname {specifier}Название шрифта - Заменить specifier с именем семейства шрифтов. Это можно использовать в сочетании с другими модификаторами.'\fontname{Courier} text'
\ fontsize {specifier}Размер шрифта - Заменить specifier с числовым скаляром значением в модули точек.'\fontsize{15} text'
\ цвет {specifier}Цвет шрифта - Заменить specifier с одним из следующих цветов: red, green, yellow, magenta, blue, black, white, gray, darkGreen, orange, или lightBlue.'\color{magenta} text'
\color[rgb]{specifier}Цвет пользовательского шрифта - Заменить specifier с трехэлементным триплетом RGB.'\color[rgb]{0,0.5,0.5} text'

В этой таблице перечислены поддерживаемые специальные символы для 'tex' интерпретатор.

Последовательность символовСимволПоследовательность символовСимволПоследовательность символовСимвол

\alpha

α

\upsilon

υ

\sim

~

\angle

\phi

\leq

\ast

*

\chi

χ

\infty

\beta

β

\psi

ψ

\clubsuit

\gamma

γ

\omega

ω

\diamondsuit

\delta

δ

\Gamma

Γ

\heartsuit

\epsilon

ϵ

\Delta

Δ

\spadesuit

\zeta

ζ

\Theta

Θ

\leftrightarrow

\eta

η

\Lambda

Λ

\leftarrow

\theta

θ

\Xi

Ξ

\Leftarrow

\vartheta

ϑ

\Pi

Π

\uparrow

\iota

ι

\Sigma

Σ

\rightarrow

\kappa

κ

\Upsilon

ϒ

\Rightarrow

\lambda

λ

\Phi

Φ

\downarrow

\mu

µ

\Psi

Ψ

\circ

º

\nu

ν

\Omega

Ω

\pm

±

\xi

ξ

\forall

\geq

\pi

π

\exists

\propto

\rho

ρ

\ni

\partial

\sigma

σ

\cong

\bullet

\varsigma

ς

\approx

\div

÷

\tau

τ

\Re

\neq

\equiv

\oplus

\aleph

\Im

\cup

\wp

\otimes

\subseteq

\oslash

\cap

\in

\supseteq

\supset

\lceil

\subset

\int

\cdot

·

\o

ο

\rfloor

\neg

¬

\nabla

\lfloor

\times

x

\ldots

...

\perp

\surd

\prime

´

\wedge

\varpi

ϖ

\0

\rceil

\rangle

\mid

|

\vee

\langle

\copyright

©

Разметка LaTeX

Чтобы использовать разметку LaTeX, установите значение интерпретатора 'latex'. Для встроенного режима окружите разметку одинарными долларовыми знаками ($). Для режима отображения окружите разметку знаками в два доллара ($$).

Режим LaTeXПримерРезультат
Действующий

'$\int_1^{20} x^2 dx$'

Equation with LaTeX inline mode.

Отображение

'$$\int_1^{20} x^2 dx$$'

Equation with LaTeX display mode.

Отображаемый текст использует стиль шрифта LaTeX по умолчанию. The FontName, FontWeight, и FontAngle свойства не имеют эффекта. Для изменения стиля шрифта используйте разметку LaTeX.

Максимальный размер текста, который можно использовать с интерпретатором LaTeX, составляет 1200 символов. Для многострочного текста это уменьшается примерно на 10 символов на линию.

Для примеров, которые используют TeX и LaTeX, смотрите греческие буквы и специальные символы в тексте графика. Для получения дополнительной информации о системе LaTeX, смотрите веб-сайт проекта LaTeX в https://www.latex-project.org/.

Шрифт

расширить все

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

Чтобы использовать шрифт фиксированной ширины, который хорошо выглядит в любой локали, используйте 'FixedWidth'. Шрифт фиксированной ширины опирается на корень FixedWidthFontName свойство. Установка корневого FixedWidthFontName свойство приводит к немедленному обновлению отображения, чтобы использовать новый шрифт.

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

Если вы меняете размер шрифта осей, MATLAB автоматически устанавливает размер шрифта шкалы палитры равным 90% от размера шрифта осей. Если вы вручную задаете размер шрифта шкалы палитры, то изменение размера шрифта осей не влияет на шкалу палитры.

Толщина символов, заданная как 'normal' или 'bold'.

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

Наклон символов, заданный как 'normal' или 'italic'.

Не все шрифты имеют оба стилей шрифта. Поэтому курсив шрифта может выглядеть так же, как и обычный шрифт.

Цвет и укладка

расширить все

Цвет текста, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя. Цвет по умолчанию черный со значением [0 0 0].

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: [0 0 1]

Пример: 'blue'

Пример: '#0000FF'

Цвет фона, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя. Значение по умолчанию [1 1 1] соответствует белому.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: legend({'A','B'},'Color','y')

Пример: legend({'A','B'},'Color',[0.8 0.8 1])

Пример: legend({'A','B'},'Color','#D9A2E9')

Цвет контура рамки, заданный как триплет RGB, шестнадцатеричный код цвета, название цвета или краткое имя. Значение по умолчанию [0.15 0.15 0.15] соответствует тёмно-серому.

Для пользовательского цвета укажите триплет RGB или шестнадцатеричный код цвета.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; для примера, [0.4 0.6 0.7].

  • Шестнадцатеричный код цвета - это вектор символов или строковый скаляр, который начинается с хэш-символа (#), за которым следуют три или шесть шестнадцатеричных цифр, которые могут варьироваться от 0 на F. Значения не зависят от регистра. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' являются эквивалентными.

Кроме того, вы можете задать имена некоторых простых цветов. В этой таблице перечислены именованные опции цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое имяТриплет RGBШестнадцатеричный цветовой кодВнешность
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию, которые MATLAB использует во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешность
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: legend({'A','B'},'EdgeColor',[0 1 0])

Отображение контура коробки, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отобразите поле вокруг легенды.

  • 'off' - Не отображать поле вокруг легенды.

Пример: legend({'A','B'},'Box','off')

Ширина контура куба, заданная как положительное значение в модули точки. Одна точка равна 1/72 дюйма.

Пример: 1.5

Интерактивность

расширить все

Состояние видимости, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отобразите объект.

  • 'off' - Скрыть объект, не удаляя его. Вы по-прежнему можете получить доступ к свойствам невидимого объекта.

Контекстное меню, заданное как ContextMenu объект. Используйте это свойство для отображения контекстного меню при щелчке правой кнопкой мыши по объекту. Создайте контекстное меню с помощью uicontextmenu функция.

Примечание

Если на PickableParts для свойства задано значение 'none' или если HitTest для свойства задано значение 'off', тогда контекстное меню не отображается.

Состояние выбора, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Выбран. Если вы кликните объект в режиме редактирования графика, то MATLAB устанавливает его Selected свойство к 'on'. Если на SelectionHighlight свойство также установлено в 'on'MATLAB отображает указатели выделения вокруг объекта.

  • 'off' - Не выбран.

Отображение указателей выделения, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Отображать указатели выделения, когда Selected для свойства задано значение 'on'.

  • 'off' - Никогда не отображать указатели выделения, даже когда Selected для свойства задано значение 'on'.

Коллбэки

расширить все

Коллбэк, который выполняется при клике по элементам легенды, заданным как одно из следующих значений:

  • Указатель на функцию. Для примера, @myCallback.

  • Массив ячеек, содержащий указатель на функцию и дополнительные аргументы. Для примера, {@myCallback,arg3}.

  • Вектор символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется).

Если вы задаете это свойство с помощью указателя на функцию, то MATLAB передает Legend объект и структура данных о событиях в качестве первого и второго входных параметров в функцию. В этой таблице описываются поля в структуре данных о событиях.

Поля структуры данных о событиях

ОбластьОписание
PeerОбъект графика, связанный с выбранным элементом легенды.
RegionОбласть элемента легенды нажата, возвращается как 'icon' или 'label'.
SelectionType

Тип нажатия кнопки, возвращенный как одно из следующих значений:

  • 'normal' - Нажатие кнопки левой кнопкой мыши

  • 'extend' - Shift + нажатие кнопки левой кнопкой мыши

  • 'open' - Дважды кликните любую кнопку мыши

  • 'alt' - Нажатие кнопки правой кнопкой мыши, обе кнопки мыши (Windows и Mac) или средняя кнопка мыши (Mac и Linux). Если на ContextMenu свойство содержит допустимое контекстное меню (которое по умолчанию), затем этот тип нажатия кнопки открывает контекстное меню вместо запуска ItemHitFcn коллбэк.

SourceLegend объект.
EventNameИмя события, 'ItemHit'.

Примечание

Если вы задаете ButtonDownFcn свойство, затем ItemHitFcn свойство отключено.

Пример

Можно создавать интерактивные легенды, чтобы при клике по элементу легенды связанный график каким-то образом обновлялся. Например, можно переключить видимость графика или изменить ее ширину линии. Установите ItemHitFcn свойство легенды для функции обратного вызова, которая управляет изменением графиков. В этом примере показов, как переключить видимость графика, когда вы нажимаете значок графика или метку в легенде. Он создает функцию обратного вызова, которая изменяет Visible свойство графика любому из 'on' или 'off'.

Скопируйте следующий код в новый файл функции и сохраните его как hitcallback_ex1.m либо в текущей папке, либо в папке на пути поиска файлов MATLAB. Два входных параметров, src и evnt, являются объектом легенды и структурой данных о событиях. MATLAB автоматически передает эти входы в функцию обратного вызова при клике элемента легенды. Используйте Peer поле структуры данных о событиях для доступа к свойствам объекта графика, связанного с кликнутым элементом легенды.

function hitcallback_ex1(src,evnt)

if strcmp(evnt.Peer.Visible,'on')
    evnt.Peer.Visible = 'off';
else 
    evnt.Peer.Visible = 'on';
end

end

Затем постройте график четырех линий, создайте легенду и присвойте объект легенды переменной. Установите ItemHitFcn свойство объекта legend в функцию обратного вызова. Щелкните элементы легенды, чтобы показать или скрыть связанный график. Метка легенды изменяется на серую при скрытии графика.

plot(rand(4));
l = legend('Line 1','Line 2','Line 3','Line 4');
l.ItemHitFcn = @hitcallback_ex1;

Коллбэк по клику мыши, заданный как одно из следующих значений:

  • Указатель на функцию

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

  • Вектор символов, являющийся действительной командой или функцией MATLAB, которая оценивается в базовом рабочем пространстве (не рекомендуется)

Используйте это свойство для выполнения кода при клике по объекту. Если вы задаете это свойство с помощью указателя на функцию, то MATLAB передает два аргумента в функцию обратного вызова при выполнении коллбэка:

  • Объект, выбранный кликом мыши - Доступ к свойствам объекта, выбранного кликом мыши, из функции обратного вызова.

  • Данные о событиях - Пустой аргумент. Замените его на символ тильды (~) в определении функции, чтобы указать, что этот аргумент не используется.

Дополнительные сведения о том, как использовать указатели на функцию для определения функций обратного вызова, см. в разделе «Определение коллбэка».

Примечание

Если на PickableParts для свойства задано значение 'none' или если HitTest для свойства задано значение 'off', тогда этот коллбэк не выполняется.

Функция создания объектов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Для получения дополнительной информации об указании коллбэка как указателя на функцию, массива ячеек или вектора символов, см. Раздел «Определение коллбэка».

Это свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB создает объект. MATLAB инициализирует все значения свойств перед выполнением CreateFcn коллбэк. Если вы не задаете CreateFcn свойство, затем MATLAB выполняет функцию создания по умолчанию.

Установка CreateFcn свойство в существующем компоненте не имеет никакого эффекта.

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

Функция удаления объектов, заданная в качестве одного из следующих значений:

  • Указатель на функцию.

  • Массив ячеек, в котором первый элемент является указателем на функцию. Последующие элементы массива ячеек являются аргументами, которые передаются в функцию обратного вызова.

  • Вектор символов, содержащий допустимое выражение MATLAB (не рекомендуемый). MATLAB оценивает это выражение в базовом рабочем пространстве.

Для получения дополнительной информации об указании коллбэка как указателя на функцию, массива ячеек или вектора символов, см. Раздел «Определение коллбэка».

Это свойство задает функцию обратного вызова, которая должна выполняться, когда MATLAB удаляет объект. MATLAB выполняет DeleteFcn коллбэк перед уничтожением свойств объекта. Если вы не задаете DeleteFcn свойство, затем MATLAB выполняет функцию удаления по умолчанию.

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

Контроль выполнения обратного вызова

расширить все

Прерывание коллбэка, заданное как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

Это свойство определяет, можно ли прерывать выполняемый коллбэк. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк. The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание. The Interruptible свойство имеет два возможных значения:

  • Значение 'on' позволяет другим коллбэкам прерывать коллбэки объекта. Прерывание происходит в следующей точке, где MATLAB обрабатывает очередь, например, когда есть drawnow, figure, uifigure, getframe, waitfor, или pause команда.

    • Если текущий коллбэк содержит одну из этих команд, MATLAB останавливает выполнение коллбэка в этой точке и выполняет прерывание обратного вызова MATLAB возобновляет выполнение текущего коллбэка после завершения прерывания обратного вызова.

    • Если текущий коллбэк не содержит одну из этих команд, MATLAB завершает выполнение коллбэка без прерывания.

  • Значение 'off' блокирует все попытки прерывания. The BusyAction свойство объекта, имеющего прерывание обратного вызова, определяет, отменяется ли прерывание обратного вызова или помещается в очередь.

Постановка в очередь коллбэков, заданная как 'queue' или 'cancel'. The BusyAction свойство определяет, как MATLAB обрабатывает выполнение прерываний обратного вызова. Существует два состояния коллбэка:

  • Обратный коллбэк running - это актуальный на данный момент коллбэк.

  • Обратный коллбэк interrupting - это коллбэк, который пытается прервать текущий коллбэк.

Всякий раз, когда MATLAB вызывает коллбэк, этот коллбэк пытается прервать текущий коллбэк. The Interruptible свойство объекта, имеющего текущий коллбэк, определяет, разрешено ли прерывание. Если прерывание не разрешено, то BusyAction свойство объекта, имеющего прерывание обратного вызова, определяет, будет ли оно сброшено или помещено в очередь. Это возможные значения BusyAction свойство:

  • 'queue' - помещает прерывание обратного вызова в очередь вызовов, подлежащих обработке после концов обратного коллбэка.

  • 'cancel' - Не выполняет прерывание обратного вызова.

Возможность осуществить захват кликов мыши, заданная как одно из следующих значений:

  • 'visible' - Захват кликов мыши при условии видимости. The Visible свойство должно быть установлено в 'on' и вы должны кликнуть часть Legend объект с заданным цветом. Вы не можете кликнуть элемент, который имеет связанный цветовой набор свойств для 'none'. The HitTest свойство определяет, Legend ли объект реагирует на нажатие кнопки или если это делает предок.

  • 'none' - Невозможно захватить клики мыши. Кликнув по Legend объект передает нажатие кнопки объекту под ним в текущем виде окна рисунка. The HitTest свойство Legend объект не влияет.

Ответ на захваченные клики мыши, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

  • 'on' - Запуск ButtonDownFcn коллбэк Legend объект. Если вы определили ContextMenu Свойство активируйте контекстное меню.

  • 'off' - Инициируйте коллбэки для ближайшего предка Legend объект, который имеет одно из следующего:

    • HitTest значение свойства установлено в 'on'

    • PickableParts набор свойств установлен таким образом, чтобы оно позволяло предку захватывать клики мыши

Примечание

The PickableParts свойство определяет, Legend ли объект может захватывать клики мыши. Если это невозможно, то HitTest свойство не влияет.

Это свойство доступно только для чтения.

Статус удаления, возвращенный как логическое значение включения/выключения типа matlab.lang.OnOffSwitchState.

MATLAB устанавливает BeingDeleted свойство к 'on' когда DeleteFcn коллбэк начинает выполняться. The BeingDeleted свойство остается установленным на 'on' пока объект компонента не перестанет существовать.

Проверьте значение BeingDeleted свойство, чтобы убедиться, что объект не будет удален до запроса или изменения.

Родитель/ребенок

расширить все

Родительский контейнер, заданный как Figure объект, Panel объект, Tab объект, или TiledChartLayout объект.

The Legend объект должен иметь тот же родительский элемент, что и связанные оси. Если вы меняете родительский элемент связанных осей, то Legend объект автоматически обновляется, чтобы использовать тот же родительский элемент.

У объекта нет дочерних элементов. Вы не можете задать это свойство.

Видимость указателя на объект в Children свойство родительского элемента, заданное в качестве одного из следующих значений:

  • 'on' - указатель на объект всегда отображается.

  • 'off' - указатель на объект всегда невидим. Эта опция используется для предотвращения непреднамеренных изменений другой функцией. Установите HandleVisibility на 'off' временно скрыть указатель во время выполнения этой функции.

  • 'callback' - Указатель на объект виден из коллбэков или функций, вызываемых коллбэками, но не из функций, инициируемых из командной строки. Эта опция блокирует доступ к объекту в командной строке, но позволяет функциям обратного вызова обращаться к нему.

Если объект не указан в Children свойство родительского элемента, тогда функции, которые получают указатели на объекты путем поиска иерархии объектов или запросов свойств указателя, не могут вернуть его. Примеры таких функций включают в себя get, findobj, gca, gcf, gco, newplot, cla, clf, и close функций.

Скрытые указатели на объекты все еще действительны. Установите корневой ShowHiddenHandles свойство к 'on' список всех указателей на объекты независимо от их HandleVisibility настройка свойств.

Идентификаторы

расширить все

Это свойство доступно только для чтения.

Тип графического объекта, возвращенный как 'legend'. Используйте это свойство для поиска всех объектов заданного типа в иерархии графического изображения.

Идентификатор объекта, заданный как вектор символов или строковый скаляр. Можно задать уникальное Tag значение, которое служит идентификатором для объекта. Когда вам нужен доступ к объекту в другом месте вашего кода, вы можете использовать findobj функция для поиска объекта на основе Tag значение.

Пользовательские данные, заданные как любой массив MATLAB. Для примера можно задать скаляр, вектор, матрицу, массив ячеек, символьный массив, таблицу или структуру. Используйте это свойство для хранения произвольных данных на объекте.

Если вы работаете в App Designer, создайте общие или частную собственность в приложении, чтобы делиться данными вместо использования UserData свойство. Для получения дополнительной информации см. раздел «Обмен данными в приложениях App Designer».

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2020a

Введенный в R2014b