exponenta event banner

Свойства условных обозначений

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

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укажите размеры условных обозначений. 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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

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

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

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

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'
\color{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 по умолчанию. FontName, FontWeight, и FontAngle свойства не имеют эффекта. Чтобы изменить стиль шрифта, используйте разметку LaTeX.

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

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

Шрифт

развернуть все

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

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

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

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

Толщина символа, указанная как '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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

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

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

Пример: 1.5

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

развернуть все

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

  • 'on' - Просмотр объекта.

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

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

Примечание

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

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

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

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

Отображение маркеров выбора при выборе, указанных как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл 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 свойства объекта легенды для функции обратного вызова. Щелкните элементы легенды, чтобы показать или скрыть связанную диаграмму. При скрытии диаграммы метка легенды меняется на серую.

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

Обратный вызов щелчком мыши, указанный как одно из следующих значений:

  • Дескриптор функции

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

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

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

  • Clicked object - доступ к свойствам нажатого объекта из функции обратного вызова.

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

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

Примечание

Если 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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

  • Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.

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

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

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

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

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

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

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

  • Выполняемый обратный вызов - это выполняемый в данный момент обратный вызов.

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

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

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

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

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

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

  • 'none' - Не удается зафиксировать щелчки мыши. Щелкните значок Legend объект передает щелчок на объект под ним в текущем виде окна фигуры. HitTest имущества Legend объект не имеет эффекта.

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

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

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

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

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

Примечание

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

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

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

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

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

Родительский/дочерний

развернуть все

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

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