이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

Legend 속성

범례의 모양과 동작

Legend 속성은 Legend 객체의 모양과 동작을 제어합니다. 속성값을 변경하여 범례의 특성을 수정할 수 있습니다. 다음과 같이 점 표기법을 사용하여 특정 객체와 속성을 참조하십시오.

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

위치와 레이아웃

모두 확장

좌표축을 기준으로 한 위치로, 다음 표에 나열된 위치 값 중 하나로 지정됩니다.

설명
'north'좌표축의 내부 맨 위
'south'좌표축의 내부 맨 아래
'east'좌표축의 내부 오른쪽
'west'좌표축의 내부 왼쪽
'northeast'좌표축의 내부 오른쪽 위(2차원 축의 경우 디폴트 값)
'northwest'좌표축의 내부 왼쪽 위
'southeast'좌표축의 내부 오른쪽 아래
'southwest'좌표축의 내부 왼쪽 아래
'northoutside'좌표축의 외부 위
'southoutside'좌표축의 외부 아래
'eastoutside'좌표축의 오른쪽
'westoutside'좌표축의 왼쪽
'northeastoutside'좌표축의 외부 오른쪽 위 코너(3차원 축의 경우 디폴트 값)
'northwestoutside'좌표축의 외부 왼쪽 위 코너
'southeastoutside'좌표축의 외부 오른쪽 아래 코너
'southwestoutside'좌표축의 외부 왼쪽 아래 코너
'best'플롯에서 데이터와의 충돌이 가장 적은 좌표축 내부
'bestoutside'좌표축의 외부 오른쪽 위 코너(범례의 방향이 세로인 곳) 또는 좌표축 아래(범례의 방향이 가로인 곳)
'none'Position 속성에 의해 결정됩니다. 사용자 지정 위치를 지정하려면 Position 속성을 사용하십시오.

예: legend('Location','northeastoutside')

방향으로, 다음 값 중 하나로 지정됩니다.

  • 'vertical' — 범례 항목을 세로로 쌓습니다. 범례에 여러 개의 열이 있는 경우, 각 열을 따라 위쪽에서 아래쪽으로 항목을 배치합니다.

  • 'horizontal' — 범례 항목을 나란히 나열합니다. 범례에 여러 개의 열이 있는 경우, 각 행을 따라 왼쪽에서 오른쪽으로 항목을 배치합니다.

예: legend('Orientation','horizontal')

열 개수로, 양의 정수로 지정됩니다. 지정된 개수의 열을 채울 충분한 범례 항목이 없을 경우, 열이 적게 표시될 수 있습니다.

범례 항목을 각 열을 따라 순서대로 표시할지 아니면 각 행을 따라 순서대로 표시할지는 Orientation 속성을 사용하십시오.

예: lgd.NumColumns = 3

NumColumns 값 선택 모드로, 다음 값 중 하나로 지정됩니다.

  • 'auto' — 값을 자동으로 선택합니다.

  • 'manual' — 수동으로 지정한 값을 사용합니다. 값을 지정하려면 NumColumns 속성을 설정하십시오.

사용자 지정 위치와 크기로, [left bottom width height] 형식의, 요소를 4개 가진 벡터로 지정됩니다. 처음 두 개의 값인 leftbottom은 Figure의 왼쪽 아래 코너부터 범례의 왼쪽 아래 코너까지의 거리를 지정합니다. 마지막 두 개의 값인 widthheight는 범례 크기를 지정합니다. Units 속성은 위치 단위를 지정합니다.

Position 속성을 지정하면 MATLAB®은 자동으로 Location 속성을 'none'으로 변경합니다.

예: legend({'A','B'},'Position',[0.2 0.6 0.1 0.2])

위치 단위로, 다음 표에 있는 값 중 하나로 지정됩니다.

Units설명
'normalized'(디폴트 값)컨테이너에 대해 정규화됩니다. 컨테이너는 일반적으로 Figure입니다. Figure의 왼쪽 아래 코너는 (0,0)에 매핑되고 오른쪽 위 코너는 (1,1)에 매핑됩니다. Figure의 크기를 조정하면 Position 벡터의 값이 업데이트됩니다.
'inches'인치.
'centimeters'센티미터.
'characters'

디폴트 시스템 글꼴의 문자 크기를 기반으로 합니다.

  • 문자 너비 = 문자 x의 너비.

  • 문자 높이 = 텍스트의 두 줄의 기준선 간 거리.

'points'포인트. 1포인트는 1/72인치와 같습니다.
'pixels'

픽셀.

R2015b부터, 픽셀 단위의 거리는 Windows®Macintosh 시스템에서 시스템 해상도와 무관하게 적용됩니다. 즉, 다음과 같습니다.

  • Windows 시스템에서 1픽셀은 1/96인치입니다.

  • Macintosh 시스템에서 1픽셀은 1/72인치입니다.

  • Linux® 시스템에서 픽셀 크기는 시스템 해상도에 의해 결정됩니다.

모든 단위는 컨테이너 창의 왼쪽 아래 코너를 기준으로 측정됩니다.

이 속성은 Position 속성에 영향을 미칩니다. 단위를 변경하는 경우 계산을 완료한 후에 Units가 디폴트 값으로 간주되는 다른 함수에 영향을 미치지 않도록 해당 속성을 디폴트 값으로 복원하는 것이 좋습니다.

객체를 만들 때 Position 속성과 Units 속성을 Name,Value 쌍으로 지정하는 경우, 지정 순서가 중요합니다. 특정 단위를 사용하여 위치를 정의하려면 Position 속성 전에 먼저 Units 속성을 설정해야 합니다.

레이블

모두 확장

좌표축의 현재 상태를 반영하기 위한 범례 항목의 자동 업데이트로, 다음 값 중 하나로 지정됩니다.

  • 'on' — 좌표축에 추가된 새 그래픽스 객체에 대한 범례 항목을 자동으로 추가합니다. 좌표축에서 삭제된 그래픽스 객체에 대한 범례 항목을 제거합니다.

  • 'off' — 자동으로 범례 항목을 추가하거나 삭제하지 않습니다.

예: legend({'A','B'},'AutoUpdate','off')

범례 레이블의 텍스트로, 문자형 벡터로 구성된 셀형 배열이나 string형 배열로 지정됩니다.

범례 제목으로, legend text 객체로 반환됩니다. 범례 제목을 추가하려면 legend text 객체의 String 속성을 설정하십시오. legend text 속성을 설정하여 글꼴 스타일이나 글꼴 색과 같은 제목 모양을 변경할 수 있습니다. 목록을 보려면 Text 속성를 참조하십시오.

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 마크업을 사용하여 위 첨자와 아래 첨자를 추가하고, 글꼴 유형과 색을 수정하며, 텍스트에 특수 문자를 포함시킬 수 있습니다.

수정자는 텍스트의 끝까지 적용됩니다. 단, 위 첨자와 아래 첨자는 바로 다음에 오는 문자나 중괄호 안에 있는 문자만 수정합니다. Interpreter 속성을 '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}글꼴 색 — specifierred, green, yellow, magenta, blue, black, white, gray, darkGreen, orange, lightBlue 색 중 하나로 바꿉니다.'\color{magenta} text'
\color[rgb]{specifier}사용자 지정 글꼴 색 — specifier를 요소를 3개 가진 RGB 3색으로 바꿉니다.'\color[rgb]{0,0.5,0.5} text'

다음 표에는 Interpreter 속성이 '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 마크업을 사용하려면 Interpreter 속성을 'latex'으로 설정하십시오. 텍스트는 달러 기호로 감쌉니다. 예를 들어, 인라인 모드의 경우 '$\int_1^{20} x^2 dx$', 디스플레이 모드의 경우 '$$\int_1^{20} x^2 dx$$'와 같이 사용하십시오.

표시되는 텍스트에 디폴트 LaTeX 글꼴 스타일이 사용됩니다. FontName, FontWeight, FontAngle 속성은 영향을 미치지 않습니다. 글꼴 스타일을 변경하려면 LaTeX 마크업을 사용하십시오.

LaTeX 인터프리터와 함께 사용할 수 있는 최대 텍스트 크기는 1,200자입니다. 여러 라인으로 된 텍스트의 경우에는 라인당 약 10자씩 줄어듭니다.

LaTeX 시스템에 대한 자세한 내용은 The LaTeX Project 웹 사이트(https://www.latex-project.org/)를 참조하십시오.

글꼴

모두 확장

글꼴 이름으로, 지원되는 글꼴 이름 또는 'FixedWidth'로 지정됩니다. 텍스트를 정상적으로 표시하고 인쇄하려면 사용자의 시스템에서 지원하는 글꼴을 선택해야 합니다. 디폴트 글꼴은 운영 체제와 로케일에 따라 다릅니다.

모든 로케일에서 미려하게 표시되는 고정 너비 글꼴을 사용하려면 'FixedWidth'를 사용하십시오. 고정 너비 글꼴은 루트 FixedWidthFontName 속성에 따라 달라집니다. 루트 FixedWidthFontName 속성을 설정하면 새 글꼴을 사용하도록 디스플레이가 즉시 업데이트됩니다.

글꼴 크기로, 0보다 큰 스칼라 값으로 지정됩니다(단위: 포인트). 디폴트 글꼴 크기는 운영 체제와 로케일에 따라 다릅니다.

좌표축 글꼴 크기를 변경하면 MATLAB은 자동으로 컬러바 글꼴 크기를 좌표축 글꼴 크기의 90%로 설정합니다. 컬러바 글꼴 크기를 수동으로 설정하는 경우에는 좌표축 글꼴 크기를 변경해도 컬러바 글꼴에 영향을 미치지 않습니다.

문자 두께로, 'normal' 또는 'bold'로 지정됩니다.

MATLAB은 FontWeight 속성을 사용하여 사용자의 시스템에서 사용 가능한 글꼴 중 하나를 선택합니다. 모든 글꼴에 굵은 두께가 있는 것은 아닙니다. 따라서 굵은 글꼴 두께를 지정해도 보통 글꼴 두께로 보일 수 있습니다.

문자 기울기로, 'normal'이나 'italic'으로 지정됩니다.

모든 글꼴에 두 글꼴 스타일이 모두 있는 것은 아닙니다. 따라서 기울임꼴이 보통 글꼴과 같게 보일 수 있습니다.

색과 스타일 지정

모두 확장

텍스트 색으로, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 색은 값이 [0 0 0]인 검은색입니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.

색 이름짧은 이름RGB 3색16진수 색 코드모양
'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'해당 없음해당 없음해당 없음색 없음

다음은 MATLAB이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다.

RGB 3색16진수 색 코드모양
[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 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 값인 [1 1 1]은 흰색에 해당합니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.

색 이름짧은 이름RGB 3색16진수 색 코드모양
'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'해당 없음해당 없음해당 없음색 없음

다음은 MATLAB이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다.

RGB 3색16진수 색 코드모양
[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 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 값인 [0.15 0.15 0.15]는 진한 회색에 해당합니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 문자형 벡터 또는 string형 스칼라로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 '#FF8800', '#ff8800', '#F80''#f80'은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.

색 이름짧은 이름RGB 3색16진수 색 코드모양
'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'해당 없음해당 없음해당 없음색 없음

다음은 MATLAB이 여러 유형의 플롯에서 사용하는 디폴트 색의 RGB 3색과 16진수 색 코드입니다.

RGB 3색16진수 색 코드모양
[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' — 범례 둘레에 상자를 표시하지 않습니다.

예: legend({'A','B'},'Box','off')

상자 윤곽선의 너비로, 양의 값으로 지정됩니다(단위: 포인트). 1포인트는 1/72인치와 같습니다.

예: 1.5

상호 작용

모두 확장

가시성 상태로, 다음 값 중 하나로 지정됩니다.

  • 'on' — 객체를 표시합니다.

  • 'off' — 객체를 삭제하지 않고 숨깁니다. 보이지 않는 객체의 속성에 계속 액세스할 수 있습니다.

상황별 메뉴로, ContextMenu 객체로 지정됩니다. 객체를 마우스 오른쪽 버튼으로 클릭할 때 상황별 메뉴를 표시하려면 이 속성을 사용하십시오. uicontextmenu 함수를 사용하여 상황별 메뉴를 만듭니다.

참고

PickableParts 속성이 'none'으로 설정되어 있거나 HitTest 속성이 'off'로 설정되어 있으면 상황별 메뉴가 나타나지 않습니다.

선택 상태로, 다음 값 중 하나로 지정됩니다.

  • 'on' — 선택된 상태. 플롯 편집 모드에서 객체를 클릭하면 MATLAB이 이 객체의 Selected 속성을 'on'으로 설정합니다. SelectionHighlight 속성도 'on'으로 설정된 경우 MATLAB은 객체 둘레에 선택 핸들을 표시합니다.

  • 'off' — 선택되지 않은 상태.

선택되었을 때 선택 핸들의 표시 여부로, 다음 값 중 하나로 지정됩니다.

  • 'on'Selected 속성이 'on'으로 설정되어 있으면 선택 핸들을 표시합니다.

  • 'off'Selected 속성이 'on'으로 설정되어 있어도 선택 핸들을 표시하지 않습니다.

콜백

모두 확장

범례 항목을 클릭할 때 실행되는 콜백으로, 다음 값 중 하나로 지정됩니다.

  • 함수 핸들. 예를 들면 @myCallback과 같습니다.

  • 함수 핸들과 추가 인수가 포함된 셀형 배열. 예를 들면 {@myCallback,arg3}과 같습니다.

  • 기본 작업 공간에서 실행되는 유효한 MATLAB 명령이나 함수인 문자형 벡터(권장되지 않음).

함수 핸들을 사용하여 이 속성을 지정하면 MATLAB이 Legend 객체와 이벤트 데이터 구조체를 함수에 첫 번째와 두 번째 입력 인수로 각각 전달합니다. 다음 표에서는 이벤트 데이터 구조체의 필드를 설명합니다.

이벤트 데이터 구조체 필드

필드설명
Peer클릭한 범례 항목과 연결된 chart 객체.
Region클릭한 범례 항목의 영역으로, 'icon'이나 'label'로 반환됩니다.
SelectionType

클릭 유형으로, 다음 값 중 하나로 반환됩니다.

  • 'normal' — 왼쪽 마우스 버튼 한 번 클릭

  • 'extend'Shift + 왼쪽 마우스 버튼 한 번 클릭

  • 'open' — 마우스 버튼 더블 클릭

  • 'alt' — 마우스 오른쪽 버튼, 마우스 양쪽 버튼(Windows와 Mac) 또는 마우스 가운데 버튼(Mac과 Linux)을 한 번 클릭합니다. UIContextMenu 속성에 유효한 상황별 메뉴가 포함되어 있으면(디폴트임) 이 클릭 유형은 ItemHitFcn 콜백을 트리거하는 대신 상황별 메뉴를 엽니다.

SourceLegend 객체.
EventName이벤트 이름 'ItemHit'입니다.

참고

ButtonDownFcn 속성을 설정하면 ItemHitFcn 속성이 비활성화됩니다.

예제

대화형 범례를 생성하여 범례의 항목을 클릭할 때 연관된 차트가 일정 방식으로 업데이트되도록 할 수 있습니다. 예를 들어 차트의 가시성을 전환하거나 선 너비를 변경할 수 있습니다. 범례의 ItemHitFcn 속성을 차트 변경 방법을 제어하는 콜백 함수로 설정합니다. 이 예제에서는 범례에서 차트 아이콘이나 레이블을 클릭할 때 차트의 가시성을 전환하는 방법을 보여줍니다. 이 예제에서는 차트의 Visible 속성을 'on' 또는 'off'로 변경하는 콜백 함수를 생성합니다.

다음 코드를 새 함수 파일로 복사하고 이를 현재 폴더나 MATLAB 검색 경로에 있는 폴더에 hitcallback_ex1.m으로 저장합니다. 두 개의 입력 인수인 srcevnt는 legend 객체이며 이벤트 데이터 구조체입니다. MATLAB은 범례의 항목을 클릭할 때 이런 입력 인수를 자동으로 콜백 함수에 전달합니다. 이벤트 데이터 구조체의 Peer 필드를 사용하여 클릭한 범례 항목과 연관된 chart 객체의 속성에 액세스합니다.

function hitcallback_ex1(src,evnt)

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

end

그다음 네 개의 선을 플로팅하고, 범례를 만들고, legend 객체를 변수에 할당합니다. legend 객체의 ItemHitFcn 속성을 콜백 함수로 설정합니다. 범례의 항목을 클릭하여 연관된 차트를 표시하거나 숨깁니다. 차트를 숨기면 범례 레이블이 회색으로 변합니다.

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 함수를 사용하여 객체에 액세스하십시오.

콜백 실행 컨트롤

모두 확장

콜백 중단으로, 'off''on'으로 지정됩니다. Interruptible 속성은 실행중 콜백을 중단할 수 있는지 여부를 지정합니다.

다음과 같은 콜백 상태를 고려할 수 있습니다.

  • 실행중 콜백은 현재 실행되고 있는 콜백입니다.

  • 인터럽트 콜백은 실행중 콜백을 중단하고 자신이 실행되려는 콜백입니다.

MATLAB이 콜백을 불러올 때마다 콜백은 실행중 콜백을 중단하려고 시도합니다. 실행중 콜백을 소유한 객체의 Interruptible 속성은 중단이 허용되는지 여부를 지정합니다. Interruptible 속성에는 다음 두 가지 값을 사용할 수 있습니다.

  • 'off' — 실행중 콜백을 중단할 수 없습니다. MATLAB은 중단 없이 실행중 콜백의 실행을 마칩니다. 인터럽트 콜백을 소유한 객체의 BusyAction 속성은 콜백을 삭제할지 아니면 대기열에 넣을지 여부를 지정합니다.

  • 'on' — 실행중 콜백을 중단할 수 있습니다. MATLAB이 대기열을 처리하는 다음 지점에서 중단이 발생합니다. drawnow, figure, getframe, waitfor 또는 pause 같은 명령이 있을 때를 예로 들 수 있습니다.

    • 실행중 콜백에 이러한 명령 중 하나가 포함되어 있으면 MATLAB은 이 지점에서 콜백 실행을 중지하고 인터럽트 콜백을 실행합니다. 인터럽트 콜백이 완료되면 MATLAB은 실행중 콜백의 실행을 재개합니다.

    • 실행중 콜백에 이러한 명령 중 하나가 포함되어 있지 않으면 MATLAB은 중단 없이 콜백 실행을 마칩니다.

콜백 대기로, 'queue''cancel'로 지정됩니다. BusyAction 속성은 MATLAB이 인터럽트 콜백의 실행을 처리하는 방법을 지정합니다. 고려할 콜백 상태에는 다음 두 가지가 있습니다.

  • 실행중 콜백은 현재 실행되고 있는 콜백입니다.

  • 인터럽트 콜백은 실행중 콜백을 중단하고 자신이 실행되려는 콜백입니다.

MATLAB이 콜백을 불러올 때마다 콜백은 실행중 콜백을 중단하려고 시도합니다. 실행중 콜백을 소유한 객체의 Interruptible 속성은 중단이 허용되는지 여부를 지정합니다. 중단이 허용되지 않는 경우 인터럽트 콜백을 소유한 객체의 BusyAction 속성은 콜백을 삭제할지 아니면 대기열에 넣을지 여부를 지정합니다. BusyAction 속성의 가능한 값은 다음과 같습니다.

  • 'queue' — 실행중 콜백이 실행을 마치고 나면 인터럽트 콜백이 처리되도록 대기열에 넣습니다.

  • 'cancel' — 인터럽트 콜백을 실행하지 않습니다.

마우스 클릭을 캡처할 수 있는 기능으로, 다음 값 중 하나로 지정됩니다.

  • 'visible' — 표시될 때 마우스 클릭을 캡처합니다. Visible 속성이 'on'으로 설정되어 있어야 하며 정의된 색이 있는 Legend 객체의 일부를 클릭해야 합니다. 연결된 색 속성이 'none'으로 설정된 부분은 클릭할 수 없습니다. HitTest 속성은 Legend 객체가 클릭에 응답하는지 아니면 선조가 응답하는지를 확인합니다.

  • 'none' — 마우스 클릭을 캡처할 수 없습니다. Legend 객체를 클릭하면 Figure 창의 현재 보기에서 이 객체 아래에 있는 객체에 클릭이 전달됩니다. Legend 객체의 HitTest 속성은 영향을 미치지 않습니다.

캡처된 마우스 클릭에 대한 응답으로, 다음 값 중 하나로 지정됩니다.

  • 'on'Legend 객체의 ButtonDownFcn 콜백을 트리거합니다. UIContextMenu 속성을 정의한 경우 상황별 메뉴를 불러옵니다.

  • 'off' — 다음과 같은 속성값을 갖는 Legend 객체의 가장 가까운 선조에 대해 콜백을 트리거합니다.

    • HitTest 속성이 'on'으로 설정되어 있음

    • PickableParts 속성이 선조가 마우스 클릭을 캡처하도록 하는 값으로 설정되어 있음

참고

PickableParts 속성은 Legend 객체가 마우스 클릭을 캡처할 수 있는지 여부를 확인합니다. 캡처할 수 없는 경우 HitTest 속성은 영향을 미치지 않습니다.

이 속성은 읽기 전용입니다.

삭제 상태로, 'off' 또는 'on'으로 반환됩니다. MATLAB은 DeleteFcn 콜백이 실행을 시작할 때 BeingDeleted 속성을 'on'으로 설정합니다. BeingDeleted 속성은 구성요소 객체가 더 이상 존재하지 않을 때까지 'on'으로 설정되어 유지됩니다.

객체를 쿼리하거나 수정하기 전에 BeingDeleted 속성의 값을 확인하여 이 객체가 곧 삭제될 것이 아님을 확인합니다.

상위(부모)/하위(자식)

모두 확장

상위(부모)로, Figure 객체, Panel 객체, Tab 객체로 지정됩니다.

Legend 객체는 연관 좌표축과 동일한 상위(부모)를 가져야 합니다. 연관 좌표축의 상위(부모)를 변경하면 동일한 상위(부모)를 사용하도록 Legend 객체가 자동으로 업데이트됩니다.

객체에 하위(자식)가 없습니다. 따라서 이 속성을 설정할 수 없습니다.

상위(부모)의 Children 속성에 있는 객체 핸들의 가시성으로, 다음 값 중 하나로 지정됩니다.

  • 'on' — 객체 핸들이 항상 표시됩니다.

  • 'off' — 객체 핸들이 항상 표시되지 않습니다. 이 옵션은 다른 함수에 의해 UI가 의도치 않게 변경되는 것을 방지하는 데 유용합니다. HandleVisibility'off'로 설정하여 해당 함수를 실행하는 동안 핸들을 일시적으로 숨길 수 있습니다.

  • 'callback' — 명령줄에서 호출한 함수 내에서가 아니라, 콜백 내에서나 콜백이 호출한 함수 내에서 객체 핸들이 표시됩니다. 이 옵션은 명령줄에서 객체에 액세스하는 것은 차단하지만, 콜백 함수가 이 객체에 액세스하는 것은 허용합니다.

객체가 상위(부모)의 Children 속성에 나열되지 않는 경우, 객체 계층 구조를 검색하거나 핸들 속성을 쿼리하여 객체 핸들을 가져오는 함수가 이 객체를 반환할 수 없습니다. 이러한 함수의 예로는 get, findobj, gca, gcf, gco, newplot, cla, clfclose 함수가 있습니다.

숨겨진 객체 핸들은 여전히 유효합니다. 루트 ShowHiddenHandles 속성을 'on'으로 설정하면 객체 핸들의 HandleVisibility 속성 설정에 관계없이 모든 객체 핸들을 나열할 수 있습니다.

식별자

모두 확장

이 속성은 읽기 전용입니다.

그래픽스 객체의 유형으로, 'legend'로 반환됩니다. 플로팅 계층 구조에서 지정된 유형의 객체를 모두 찾으려면 이 속성을 사용하십시오.

객체 식별자로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. 객체의 식별자로 사용할 고유 Tag 값을 지정할 수 있습니다. 코드의 다른 곳에서 객체에 액세스해야 할 경우 findobj 함수를 사용하여 Tag 값을 기반으로 객체를 검색할 수 있습니다.

사용자 데이터로, 임의의 MATLAB 배열로 지정됩니다. 예를 들어, 스칼라, 벡터, 행렬, 셀형 배열, 문자형 배열, table형 또는 구조체형으로 지정할 수 있습니다. 이 속성을 사용하여 객체에 임의의 데이터를 저장할 수 있습니다.

앱 디자이너에서 작업하는 경우 앱에서 데이터를 공유할 수 있도록 UserData 속성을 사용하는 대신 퍼블릭 또는 프라이빗 속성을 생성하십시오. 자세한 내용은 앱 디자이너로 만든 앱 내부에서 데이터 공유하기 항목을 참조하십시오.

R2014b에 개발됨