datacursormode

대화형 방식의 데이터 커서 모드를 사용(Enable), 사용 안 함(Disable) 및 관리

구문

datacursormode on
datacursormode off
datacursormode
datacursormode toggle
datacursormode(figure_handle)
dcm_obj = datacursormode(figure_handle)

설명

datacursormode on은 현재 Figure에서 데이터 커서 모드를 사용합니다.

datacursormode off는 현재 Figure에서 데이터 커서 모드를 사용하지 않습니다. R2018b부터는 모드에 관계없이 기본적으로 일부 데이터 커서 상호 작용이 활성화되어 있습니다. 이러한 디폴트 상호 작용을 비활성화하려면 disableDefaultInteractivity 함수를 사용하십시오.

datacursormodedatacursormode toggle은 현재 Figure에서 데이터 커서 모드를 설정하거나 해제합니다(토글 형식).

datacursormode(figure_handle)은 지정된 Figure에서 데이터 커서 모드를 사용하거나 사용하지 않습니다.

dcm_obj = datacursormode(figure_handle)은 Figure에 대한 데이터 커서 모드 객체를 반환합니다. 이 객체를 사용하여 데이터 커서를 사용자 지정할 수 있습니다. 데이터 커서 모드 객체에 대한 자세한 내용은 출력 인수 항목을 참조하십시오. 모드 객체를 반환하는 datacursormode 호출을 통해 데이터 커서 모드의 상태를 변경할 수는 없습니다.

데이터 커서는 흰색 테두리의 작은 검은색 정사각형이며, 대화형 방식을 위한 데이터 커서 모드에서 그래프에 표시됩니다. 그래프에서 선과 같은 그래픽 객체를 클릭하면 데이터팁이 표시됩니다. 데이터팁은 데이터 커서 위치에서의 데이터 값을 표시하는 작은 텍스트 상자이거나 창으로, 좌표축 내부에 고정되지 않은 채 표시됩니다. 디폴트 스타일은 텍스트 상자입니다. 데이터팁은 데이터 점에 대한 x 값, y 값 및 (해당하는 경우) z 값을 각 점이 선택될 때마다 나열합니다. 이러한 두 스타일에 대한 그림은 예제 항목을 참조하십시오.

입력 인수

figure_handle

Figure 창의 핸들(선택 사항)

디폴트 값: 현재 Figure

state

'', 'toggle', 'on' 또는 'off'

디폴트 값: 'toggle'

출력 인수

dcm_obj

datacursormode에서 반환된 객체로, 이 객체를 사용하여 데이터 커서 동작의 여러 측면을 제어할 수 있습니다. set 명령과 get 명령을 사용하면 객체 속성값을 설정하고 쿼리할 수 있습니다. 해당 객체에 대한 콜백 함수를 코드화하여 데이터 커서 모드가 정보를 제공하는 방법을 사용자 지정할 수 있습니다.

이름-값 쌍의 인수

다음 파라미터는 datacursormode에 대한 호출에서 반환된 객체에 적용되며, 함수 자체에는 적용되지 않습니다.

DisplayStyle

datatip | window

데이터 커서가 표시되는 방법을 지정합니다.

  • datatip은 대화형 방식으로 선택한 데이터 점의 검은색 정사각형 마커에 작은 노란색 텍스트 상자를 부착시켜 데이터 커서 정보를 표시합니다.

  • window는 대화형 방식으로 선택한 데이터 점에 대한 데이터 커서 정보를 Figure 내의 이동식 창에 표시합니다.

디폴트 값: datatip

Enable

on | off

데이터 커서 모드가 현재 해당 Figure에 대해 활성화되는지 여부를 지정합니다.

디폴트 값: off

Figure

핸들

데이터 커서 모드 객체에 대한 Figure의 핸들입니다.

Interpreter

none | tex | latex

텍스트 문자의 해석 방식을 지정합니다. TeX 마크업을 사용하여 위 첨자와 아래 첨자를 추가하고, 글꼴 유형과 색을 수정하며, 텍스트에 특수 문자를 포함시킬 수 있습니다. 자세한 내용은 Interpreter를 참조하십시오.

디폴트 값: tex

SnapToDataVertex

on | off

데이터 커서를 가장 가까운 데이터 값에 맞출지 실제 포인터 위치에 둘지 지정합니다.

디폴트 값: on

UpdateFcn

함수 핸들

데이터 커서에 표시되는 텍스트의 형식을 지정하는 함수에 대한 참조입니다. 자신만의 고유 함수를 제공하여 데이터팁 표시를 사용자 지정할 수 있습니다. 함수는 인수를 두 개 이상 포함해야 합니다. 첫 번째 인수는 사용되지 않으며, 변수 이름 또는 물결표(~)로 지정될 수 있습니다. 두 번째 인수는 데이터 커서 이벤트 객체를 업데이트 함수에 전달합니다. 이벤트 객체는 데이터 커서의 상태를 캡슐화합니다. 다음 함수 정의는 업데이트 함수를 보여줍니다.

function output_txt = myfunction(~,event_obj)
% ~            Currently not used (empty)
% event_obj    Object containing event data structure
% output_txt   Data cursor text

event_obj는 다음 속성을 가지는 객체입니다.

Target

데이터 커서가 참조하는 객체(예를 들어, 클릭이 가능한 선 계열 또는 막대 계열 객체)의 핸들입니다.

Position

커서의 x 좌표, y 좌표(및 z 좌표(3차원 그래프의 경우))를 지정하는 배열입니다.

함수 내에서 이러한 속성을 쿼리할 수 있습니다. 예를 들어, 다음은

pos = get(event_obj,'Position');

커서의 좌표를 반환합니다. 해당 데이터에 액세스하는 다른 방법은 구조체를 가져와서 Position 필드를 쿼리하는 것입니다.

eventdata = get(event_obj);
pos = eventdata.Position;
또는 객체에서 직접 위치 정보를 가져올 수도 있습니다.
pos = event_obj.Position;

런타임에 데이터 커서 Updatefcn을 다시 정의할 수 있습니다. 예를 들어, 다음은

set(dcm_obj,'UpdateFcn',@myupdatefcn)
함수 myupdatefcn을 현재 데이터팁(하나 또는 여러 개)에 적용합니다. 이런 식으로 업데이트 함수를 설정하는 경우 업데이트 함수는 MATLAB® 경로에 있어야 합니다. 데이터 커서 모드 상황별 메뉴 항목 텍스트 업데이트 함수 선택(Select Text Update Function)을 선택한 경우에는 MATLAB 경로에 없는 함수를 대화형 방식으로 선택할 수 있습니다.

데이터 커서 모드에서 ButtonDownFcn, KeyPressFcn 또는 CloseRequestFcn과 같은 Figure 창 콜백을 다시 정의해서는 안 됩니다. 대화형 모드에서 Figure 콜백을 변경하려고 하면 경고 메시지가 표시되고 시도가 실패합니다. MATLAB 대화형 모드는 다음과 같습니다.

  • brush

  • datacursormode

  • pan

  • rotate3d

  • zoom

이 제한은 Figure의 WindowButtonMotionFcn 콜백 또는 uicontrol 콜백의 변경에는 적용되지 않습니다.

데이터 커서 모드 쿼리

getCursorInfo 함수를 사용하여 데이터 커서 모드 객체(업데이트 함수 구문의 dcm_obj)를 쿼리하여 데이터 커서에 대한 정보를 가져옵니다. 예를 들어, 다음은

info_struct = getCursorInfo(dcm_obj);

그래프 상의 각 데이터 커서마다 하나의 구조체 벡터를 반환합니다. 각 구조체는 다음 필드를 가집니다.

Target

데이터 점을 포함하는 그래픽스 객체의 핸들

Position

커서의 x 좌표, y 좌표(및 z 좌표)를 지정하는 배열

선 객체와 lineseries 객체는 추가 필드를 가집니다.

DataIndex

가장 가까운 데이터 점에 대응하는 데이터 배열에 대한 스칼라 인덱스. 값은 각 배열에 대해 동일합니다.

데이터 커서 모드 객체에 대한 자세한 내용은 출력 인수 항목을 참조하십시오.

예제

이 예제에서는 플롯을 만들고 명령줄에서 데이터 커서 모드를 사용합니다.

surf(peaks)
datacursormode on
% Click mouse on surface to display data cursor

곡면에서 점을 선택하면 x 좌표, y 좌표 및 z 좌표를 표시하는 데이터팁이 열립니다.

툴(Tools) > 옵션(Options) > 커서를 창 안에 표시(Display cursor in window)를 사용하여 데이터팁 디스플레이 스타일을 텍스트 상자 대신 창으로 변경할 수 있습니다. 또는 상황별 메뉴 디스플레이 스타일(Display Style) > Figure 내에 창 표시(Window Inside Figure)를 사용하여 좌표축 내에서 움직일 수 있는 이동식 창에 데이터팁을 표시할 수 있습니다.

동일한 그래프에 여러 개의 텍스트 상자 데이터팁을 둘 수 있습니다. 창 스타일의 데이터팁은 한 번에 하나의 값만 표시합니다.

이 예제에서는 현재 Figure에서 데이터 커서 모드를 사용하며 데이터 커서 모드 옵션을 설정합니다. 다음 명령문은

  • 그래프를 만듭니다.

  • 데이터 커서 모드 토글 기능을 켭니다.

  • 데이터 커서 모드 객체를 가져오고 데이터팁 옵션을 지정하고 데이터팁이 위치한 선의 핸들을 가져옵니다.

    fig = figure;
    z = peaks;
    plot(z(:,30:35))
    dcm_obj = datacursormode(fig);
    set(dcm_obj,'DisplayStyle','datatip',...
        'SnapToDataVertex','off','Enable','on')
    
    disp('Click line to display a data tip, then press Return.')
    % Wait while the user does this.
    pause 
    
    c_info = getCursorInfo(dcm_obj);
    % Make selected line wider
    set(c_info.Target,'LineWidth',2) 

이 예제에서는 데이터 커서가 표시하는 텍스트를 사용자 지정하는 방법을 보여줍니다. 예를 들어, 간단한 업데이트 함수를 만들어 데이터팁 및 데이터 창에 표시된 텍스트(x:y:)를 Time:Amplitude:로 바꿀 수 있습니다.

다음 함수를 실행하기 전에 MATLAB 경로의 현재 디렉터리 또는 쓰기 가능한 디렉터리에 저장합니다. 함수를 강조 표시하고 선택을 실행하여 동작시킬 수는 없습니다.

다음 코드를 doc_datacursormode.m 파일 이름으로 저장합니다.

function doc_datacursormode
% Plots graph and sets up a custom data tip update function
fig = figure;
a = -16; t = 0:60;
plot(t,sin(a*t))
dcm_obj = datacursormode(fig);
set(dcm_obj,'UpdateFcn',@myupdatefcn)

다음 코드를 MATLAB 경로에 myupdatefcn.m 파일 이름으로 저장합니다.

function txt = myupdatefcn(empt,event_obj)
% Customizes text of data tips

pos = get(event_obj,'Position');
txt = {['Time: ',num2str(pos(1))],...
	      ['Amplitude: ',num2str(pos(2))]};

업데이트 함수를 설정하고 사용하려면 다음을 입력합니다.

doc_datacursormode
업데이트 함수를 사용하여 데이터팁의 위치를 지정하면 다음 Figure에서 보이는 모양과 유사합니다.

  • 대부분 유형의 그래프와 3차원 플롯에 데이터팁을 만들 수 있습니다. 그러나 pie를 사용하여 만든 원형 차트 같은 일부 유형의 플롯은 데이터 커서 모드를 지원하지 않습니다.

  • 대개 데이터팁에는 선택한 점의 좌표가 표시됩니다. 그러나 일부 유형의 차트에서는 데이터팁에 특화된 정보가 표시됩니다. 예를 들어, histogram을 사용하여 만든 히스토그램은 관측값 개수와 Bin 경계값을 항목별로 나눈 데이터팁을 표시합니다.

  • 데이터 커서 모드 객체의 DisplayStyle 속성이 'datatip'이면, Shift 키를 누른 상태로 데이터 점을 선택하여 여러 개의 데이터팁을 만들 수 있습니다. DisplayStyle'window'이면 한 번에 하나의 데이터팁만 만들 수 있습니다.

  • DisplayStyle 속성이 'datatip'인 경우 데이터 커서 모드를 끄더라도 플롯의 데이터팁은 그대로 유지됩니다. 그러나 DisplayStyle'window'인 경우에는 데이터 커서가 사라지고 데이터팁 창이 닫힙니다.

대안

도구 모음에 있는 데이터 커서 버튼을 사용하여 그래프와 곡면에 x, y, z 값을 레이블로 표시합니다. 상황별 메뉴에서 마우스 오른쪽 버튼으로 항목을 클릭하고 선택하여 데이터팁 표시 방식을 제어할 수 있습니다.

R2006a 이전에 개발됨