Main Content

animatedline

애니메이션된 선 생성

설명

an = animatedline은 데이터가 없는 애니메이션된 선을 만든 다음 현재 좌표축에 추가합니다. addpoints 함수를 사용하여 루프의 선에 점을 추가하여 애니메이션을 만들 수 있습니다.

예제

an = animatedline(x,y)xy로 정의된 초기 데이터 점을 사용하여 애니메이션된 선을 만듭니다.

an = animatedline(x,y,z)x, y, z로 정의된 초기 데이터 점을 사용하여 애니메이션된 선을 만듭니다.

예제

an = animatedline(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 animated line 속성을 지정합니다. 예를 들어, 'Color','r'은 선 색을 빨간색으로 설정합니다. 위에 열거된 구문에 나와 있는 입력 인수의 조합 다음에 이 옵션을 사용하십시오.

an = animatedline(ax,___)는 현재 좌표축 대신 ax로 지정된 좌표축에 선을 만듭니다. 위에 열거된 모든 구문에서 ax를 다른 모든 입력 인수 앞에 지정하십시오.

예제

모두 축소

초기 animated line 객체를 만듭니다. 그런 다음 루프를 사용하여 1,000개의 점을 선에 추가합니다. 새 점을 각각 추가한 후에 drawnow를 사용하여 화면에 새 점을 표시합니다.

h = animatedline;
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

더 빠르게 렌더링하려면 루프를 통해 매번 둘 이상의 점을 선에 추가하거나 drawnow limitrate를 사용하십시오.

선의 점들을 쿼리합니다.

[xdata,ydata] = getpoints(h);

선에서 점을 지웁니다.

clearpoints(h)
drawnow

애니메이션된 선의 색을 빨간색으로 설정하고 이 선의 너비를 3포인트로 설정합니다.

x = [1 2];
y = [1 2];
h = animatedline(x,y,'Color','r','LineWidth',3);

Figure contains an axes object. The axes object contains an object of type animatedline.

datetime형 및 duration형 값과 같은 숫자형이 아닌 점을 플로팅하려면, 먼저 플로팅할 유형의 값을 사용하여 애니메이션된 선을 초기화하십시오. 플롯의 첫 번째 점을 지정하거나 NaT 또는 NaN 같은 자리 표시자 값을 지정할 수 있습니다.

예를 들어, x축에 datetime형 값을, y축에 duration형 값(분)을 플로팅해 보겠습니다. NaT 값과 minutes(NaN) 값을 사용하여 애니메이션된 선을 초기화합니다. 그런 다음 datetime형 벡터(x)와 duration형 벡터(y)를 만들고 애니메이션된 선에 벡터의 점을 추가합니다.

an = animatedline(NaT,minutes(NaN),"Marker","o");
x = datetime(2018,5,1:5);
y = minutes([1 7 3 11 4]);
addpoints(an,x,y)

Figure contains an axes object. The axes object contains an object of type animatedline.

애니메이션된 선의 점 개수를 100개로 제한합니다. 루프를 사용하여 한 번에 하나의 점을 선에 추가합니다. 선에 100개의 점이 포함된 경우 새 점을 선에 추가하면 가장 오래된 점이 삭제됩니다.

h = animatedline('MaximumNumPoints',100);
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

루프를 사용하여 100,000개의 점을 애니메이션된 선에 추가합니다. 점 개수가 많기 때문에 루프를 통해 매번 점을 하나씩 선에 추가하면 속도가 느릴 수 있습니다. 대신, 루프를 통해 매번 점을 100개씩 선에 추가하여 애니메이션 속도를 높일 수 있습니다.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:100:numpoints-99
    xvec = x(k:k+99);
    yvec = y(k:k+99);
    addpoints(h,xvec,yvec)
    drawnow
end

더 빠른 애니메이션을 만드는 또 다른 기법은 drawnow 대신 drawnow limitrate를 사용하는 것입니다.

루프를 사용하여 100,000개의 점을 애니메이션된 선에 추가합니다. 점 개수가 많기 때문에 drawnow를 사용하여 변경 사항을 표시하면 속도가 느릴 수 있습니다. 대신, drawnow limitrate를 사용하여 애니메이션 속도를 높일 수 있습니다.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    drawnow limitrate
end

업데이트 사항을 화면에 그리기 전에 애니메이션 루프를 여러 번 반복 실행합니다. 이 기법은 drawnow 속도가 너무 느리거나 drawnow limitrate 속도가 너무 빠를 때 사용할 수 있습니다.

예를 들어, 1/30초마다 화면을 업데이트해 보겠습니다. tic 명령과 toc 명령을 사용하여 각 화면 업데이트 간에 소요되는 시간을 추적합니다.

h = animatedline;
axis([0,4*pi,-1,1])
numpoints = 10000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
a = tic; % start timer
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    b = toc(a); % check timer
    if b > (1/30)
        drawnow % update screen every 1/30 seconds
        a = tic; % reset timer after updating
    end
end
drawnow % draw final frame

간격이 좁을수록 화면이 더 자주 업데이트되고 애니메이션 속도가 느려집니다. 예를 들어, b > (1/1000)을 사용하면 애니메이션 속도가 느려집니다.

입력 인수

모두 축소

시작 x 좌표로, y와 크기가 동일한 스칼라 또는 벡터로 지정됩니다.

극좌표에서 x는 시작 theta 값에 해당합니다. 지리 좌표에서 x는 시작 위도(단위: 도)에 해당합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

시작 y 좌표로, x와 크기가 동일한 스칼라 또는 벡터로 지정됩니다.

극좌표에서 y는 시작 반지름 값에 해당합니다. 지리 좌표에서 y는 시작 경도(단위: 도)에 해당합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

시작 z 좌표로, 스칼라 또는 벡터로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

대상 좌표축으로, 임의의 좌표축 유형, Group 객체 또는 Transform 객체로 지정됩니다. 이 인수를 지정하지 않는 경우 animatedline은 현재 좌표축을 사용합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: animatedline(x,y,Color="red",Marker="o")는 빨간색 원형 마커로 애니메이션된 선을 만듭니다.

R2021a 이전: 쉼표를 사용하여 각각의 이름과 값을 구분하고 Name을 따옴표로 묶으십시오. 예를 들어 animatedline(x,y,"Color","red","Marker","o")는 빨간색 원형 마커로 애니메이션된 선을 만듭니다.

여기에 나와 있는 animated line 속성은 일부에 불과합니다. 전체 목록을 보려면 AnimatedLine 속성을 참조하십시오.

선 색으로, 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"

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"해당 없음해당 없음해당 없음색 없음

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

RGB 3색16진수 색 코드모양
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

선 스타일로, 다음 표에 나열된 옵션 중 하나로 지정됩니다.

선 스타일설명결과 선
"-"실선

Sample of solid line

"--"파선

Sample of dashed line

":"점선

Sample of dotted line

"-."일점 쇄선

Sample of dash-dotted line, with alternating dashes and dots

"none"선 없음선 없음

선 너비로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다. 선에 마커가 있는 경우 선 너비는 마커 가장자리에도 영향을 미칩니다.

선 너비는 픽셀 너비보다 가늘 수 없습니다. 선 너비를 시스템의 픽셀 너비보다 작은 값으로 설정할 경우 선은 1픽셀 너비로 표시됩니다.

마커 기호로, 다음 표에 나열된 값 중 하나로 지정됩니다. 기본적으로 객체는 마커를 표시하지 않습니다. 마커 기호를 지정하면 각 데이터 점이나 꼭짓점에 마커가 추가됩니다.

마커설명결과로 생성되는 마커
"o"

Sample of circle marker

"+"플러스 기호

Sample of plus sign marker

"*"별표

Sample of asterisk marker

"."

Sample of point marker

"x"십자

Sample of cross marker

"_"가로선

Sample of horizontal line marker

"|"세로선

Sample of vertical line marker

"square"정사각형

Sample of square marker

"diamond"다이아몬드

Sample of diamond marker

"^"위쪽 방향 삼각형

Sample of upward-pointing triangle marker

"v"아래쪽 방향 삼각형

Sample of downward-pointing triangle marker

">"오른쪽 방향 삼각형

Sample of right-pointing triangle marker

"<"왼쪽 방향 삼각형

Sample of left-pointing triangle marker

"pentagram"펜타그램

Sample of pentagram marker

"hexagram"헥사그램

Sample of hexagram marker

"none"마커 없음해당 없음

마커 크기로, 양의 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치와 같습니다.

마커 윤곽선 색으로, "auto", RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 디폴트 값인 "auto"Color 속성과 동일한 색을 사용합니다.

사용자 지정 색의 경우에는 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"

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"해당 없음해당 없음해당 없음색 없음

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

RGB 3색16진수 색 코드모양
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

마커 채우기 색으로, "auto", RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. "auto" 옵션은 부모 axes의 Color 속성과 동일한 색을 사용합니다. "auto"를 지정했는데 좌표축 플롯 상자가 보이지 않는 경우 마커 채우기 색은 Figure의 색과 동일합니다.

사용자 지정 색의 경우에는 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"

Sample of the color red

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

Sample of the color green

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

Sample of the color blue

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

Sample of the color cyan

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

Sample of the color magenta

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

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"해당 없음해당 없음해당 없음색 없음

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

RGB 3색16진수 색 코드모양
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

저장되어 선의 일부로 표시되는 최대 점 개수로, 양의 값이나 Inf로 지정됩니다. 기본적으로 이 값은 백만 개의 점입니다. 점 개수가 허용되는 최댓값을 초과하는 경우 animated line 객체는 가장 최근에 추가된 점을 유지하고 선 시작 부분에 있는 점을 삭제합니다. 이와 같이 삭제된 점은 더 이상 화면에 표시되지 않으며 getpoints를 사용할 때 반환되지 않습니다.

이 속성을 사용하면 지정된 시간에 화면에 나타나는 점의 개수를 제한하거나 사용되는 메모리 크기를 제한할 수 있습니다. 이 값을 Inf로 지정하면 애니메이션된 선이 점을 삭제하지 않지만 저장되는 점의 개수가 사용 가능한 메모리 크기에 의해 제한됩니다.

예: 10

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

AnimatedLine 객체. an을 사용하면 AnimatedLine 객체가 생성된 후에 속성값을 변경하거나 line에 점을 추가하는 등 animated line 객체를 수정할 수 있습니다. 속성 목록은 AnimatedLine 속성을 참조하십시오.

제한 사항

애니메이션된 선은 데이터팁을 지원하지 않습니다.

확장 기능

버전 내역

R2014b에 개발됨

모두 확장