Main Content

차트 상호 작용 제어하기

플로팅된 데이터를 대화형 방식으로 탐색하고 편집하여 데이터의 시각적 표시를 향상시키거나 데이터의 추가 정보를 나타낼 수 있습니다. 사용 가능한 상호 작용은 좌표축의 내용에 따라 달라지지만, 일반적으로 확대/축소, 패닝, 회전, 데이터팁, 데이터 브러싱, 원래 보기 복원이 포함됩니다.

일부 유형의 상호 작용은 좌표축 도구 모음을 통해 사용할 수 있습니다. 차트 영역 위에 커서를 올려놓으면 좌표축의 오른쪽 위 코너에 도구 모음이 표시됩니다.

Sample axes toolbar

다른 상호 작용 유형(예: 끌어서 패닝 또는 스크롤하여 확대/축소)은 좌표축에 내장되어 있으며 제스처를 통해 사용할 수 있습니다. 이러한 상호 작용은 좌표축 도구 모음의 상호 작용과는 별개로 제어됩니다.

차트를 생성할 때 다음과 같이 여러 가지 방법으로 사용 가능한 상호 작용 모음을 제어할 수 있습니다.

R2018a와 그 이전 릴리스에서는 많은 상호 작용 옵션이 좌표축 도구 모음 대신 Figure 도구 모음에 표시됩니다. 또한 이전 릴리스에서는 상호 작용이 좌표축에 내장되어 있지 않았습니다.

좌표축 도구 모음 표시 또는 숨기기

좌표축 도구 모음을 표시하거나 숨기려면 AxesToolbar 객체의 Visible 속성을 각각 'on' 또는 'off'로 설정하십시오. 예를 들어, 현재 좌표축의 도구 모음을 숨기려면 다음과 같이 하십시오.

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

좌표축 도구 모음 사용자 지정하기

axtoolbar 함수와 axtoolbarbtn 함수를 통해 좌표축 도구 모음에서 사용 가능한 옵션을 사용자 지정할 수 있습니다.

예를 들어, 좌표축 그리드 선을 활성화 및 비활성화하는 사용자 지정 상태 버튼을 좌표축 도구 모음에 추가해 보겠습니다. 먼저 mycustomstatebutton.m이라는 프로그램 파일을 생성합니다. 프로그램 파일 내에서 다음을 수행합니다.

  • 임의의 데이터를 플로팅합니다.

  • axtoolbar 함수를 사용하여 보기를 확대, 축소, 복원할 수 있는 옵션이 포함된 좌표축 도구 모음을 생성합니다.

  • axtoolbarbtn 함수를 사용하여 도구 모음에 빈 상태 버튼을 추가합니다. ToolbarStateButton 객체를 반환합니다.

  • Icon 속성, Tooltip 속성, ValueChangedFcn 속성을 설정하여 상태 버튼의 아이콘, 툴팁, 콜백 함수를 지정합니다. 이 예제에서는 grid 아이콘을 사용하는데, 그러려면 먼저 아이콘을 사용자 경로에 mygridicon.png라는 이미지 파일로 저장해야 합니다.

프로그램 파일 실행 시, 이 아이콘을 클릭하여 그리드 선을 활성화 및 비활성화할 수 있습니다.

function mycustomstatebutton

plot(rand(5))
ax = gca;
tb = axtoolbar(ax,{'zoomin','zoomout','restoreview'});

btn = axtoolbarbtn(tb,'state');
btn.Icon = 'mygridicon.png';
btn.Tooltip = 'Grid Lines';
btn.ValueChangedFcn = @customcallback;

    function customcallback(src,event)
        switch src.Value
            case 'off'
                event.Axes.XGrid = 'off';
                event.Axes.YGrid = 'off';
                event.Axes.ZGrid = 'off';
            case 'on'
                event.Axes.XGrid = 'on';
                event.Axes.YGrid = 'on';
                event.Axes.ZGrid = 'on';
        end
    end

end

Line plot with grid lines

내장된 상호 작용 활성화 또는 비활성화하기

차트 내에서 내장된 상호 작용의 활성화 여부를 제어하려면 disableDefaultInteractivity 함수와 enableDefaultInteractivity 함수를 사용하십시오. MATLAB®이 내장된 상호 작용을 자동으로 비활성화하는 경우가 있습니다. 예를 들어, 특수 기능이 있는 차트의 경우나 WindowScrollWheelFcn 콜백과 같은 특정 콜백을 구현하는 경우에 비활성화될 수 있습니다.

내장된 상호 작용 사용자 지정하기

대부분의 좌표축 유형에는 특정 제스처에 해당하는 내장된 디폴트 상호 작용 집합이 포함되어 있습니다. 사용 가능한 상호 작용은 좌표축의 내용에 따라 달라집니다. 대부분의 카테시안 좌표축에는 스크롤하여 확대/축소, 커서를 올리거나 클릭하여 데이터팁 표시, 끌어서 패닝(2차원 보기) 또는 끌어서 회전(3차원 보기)을 할 수 있는 상호 작용이 포함되어 있습니다. 디폴트 세트를 새 상호 작용 세트로 바꿀 수는 있지만 디폴트 세트의 상호 작용에 액세스하거나 수정할 수는 없습니다.

디폴트 상호 작용을 바꾸려면 좌표축의 Interactions 속성을 interaction 객체로 구성된 배열로 설정하십시오. 다음 표에서 호환되는 interaction 객체의 조합을 선택합니다. 좌표축에서 모든 상호 작용을 삭제하려면 속성을 빈 배열([])로 설정하십시오.

interaction 객체설명호환되는 상호 작용
panInteraction차트 내에서 끌어서 패닝.regionZoomInteractionrotateInteraction을 제외한 모든 상호 작용
rulerPanInteraction축을 끌어서 패닝.모든 상호 작용
zoomInteraction스크롤하거나 손가락 모으기 제스처로 확대/축소.모든 상호 작용
regionZoomInteraction사각형 영역을 끌어서 확대.
(2차원 카테시안 차트에만 해당)
panInteractionrotateInteraction을 제외한 모든 상호 작용
rotateInteraction차트를 끌어서 회전.panInteractionregionZoomInteraction을 제외한 모든 상호 작용
dataTipInteraction커서를 올리거나 클릭하거나 눌러서 데이터팁 표시.모든 상호 작용

예를 들어, 1000개의 산점을 포함하는 플롯을 생성합니다.

x = 1:500;
y = randn(1,500);
y2 = 5*randn(1,500) + 10;
plot(x,y,'.',x,y2,'.')

Scatter plot displaying two sets of data using two colors

기본적으로 이 플롯에는 '차트 영역 내에서 끌어서 패닝'을 비롯한 일련의 상호 작용이 포함되어 있습니다. 그러나 현재 플롯에 조밀한 점 모음이 있으므로 플롯의 특정 영역을 확대할 수 있는 상호 작용을 설정에 포함하는 것이 더 유용할 수 있습니다. regionZoomInteraction 객체가 이 기능을 제공합니다. 현재 좌표축에 대한 상호 작용의 디폴트 설정을 regionZoomInteraction 객체를 포함하는 배열로 바꿉니다.

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

이제 플롯 영역 내에서 끌어서 놓으면 확대할 사각형 영역이 정의됩니다.

The same scatter plot with a rectangle surrounding some points

앱의 상호 작용 동작을 사용자 지정하기

앱 디자이너에서 만든 좌표축과 uifigure 함수로 만든 Figure의 좌표축에 대한 특정 상호 작용을 사용자 지정할 수 있습니다. 좌표축의 InteractionOptions 속성과 연결된 CartesianAxesInteractionOptions 객체의 속성값을 변경하여 좌표축 상호 작용을 사용자 지정하십시오.

예를 들어, uifigure 함수로 만든 Figure에서 좌표축의 상호 작용을 사용자 지정해 보겠습니다. 좌표축에 대해 지원되는 상호 작용을 수정합니다. 좌표축이 패닝 상호 작용을 지원하지 않도록 PanSupported 속성을 "off"로 지정합니다.

f = uifigure;
ax = uiaxes(f);
plot(ax,magic(4));
ax.InteractionOptions.PanSupported = "off";

좌표축 도구 모음에는 더 이상 패닝 버튼이 포함되지 않으며 플롯을 클릭하고 끌어서 놓아도 좌표축의 보기가 패닝되지 않습니다.

Plot with axes toolbar showing all the default buttons excluding the Pan button

이번에는 확대/축소 상호 작용을 x 차원으로만 제한합니다.

ax.InteractionOptions.LimitsDimensions = "x";

이제, LimitsDimensions 속성과 관련된 모든 확대/축소 상호 작용은 x 차원으로 제한됩니다. 예를 들어, 좌표축에 대해 확대/축소 모드를 활성화합니다.

zoom(ax,"on")
그런 다음, 플롯 내에서 끌어서 놓거나 스크롤하거나 클릭하여 확대/축소합니다. CartesianAxesInteractionOptionsLimitsDimensions 속성이 확대/축소를 x 차원으로 제한합니다.

Selection range along x-axis for zooming

좌표축을 확대했다가 좌표축의 보기를 복원합니다. 보기를 복원하기 전에 보기 복원의 디폴트 x축 제한을 쿼리합니다.

restoreX = ax.InteractionOptions.RestoredXLimits
restoreX =`

     1     4

x축 복원 제한을 사용자 지정합니다.

ax.InteractionOptions.RestoredXLimits = [2 3];

그런 다음, 좌표축 도구 모음에서 보기 복원 버튼을 클릭합니다. x축의 제한이 [2 3]입니다.

Plot with x-axis limits [2 3]

참고 항목

함수

속성

관련 항목