Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

quiver

퀴버 또는 벡터 플롯

  • Cartesian grid with plotted arrows

설명

예제

quiver(X,Y,U,V)XY로 지정된 카테시안 좌표에서 방향 성분 UV를 사용하여 화살표를 플로팅합니다. 예를 들어, 첫 번째 화살표는 점 X(1), Y(1)에서 시작하여 U(1)에 따라 가로 방향으로 뻗고, V(1)에 따라 세로 방향으로 뻗습니다. 기본적으로 quiver 함수는 화살표가 중첩되지 않도록 화살표 길이를 스케일링합니다.

quiver(U,V)는 균일한 간격의 점에서 UV로 지정된 방향 성분을 사용하여 화살표를 플로팅합니다.

  • UV가 벡터이면 화살표의 x 좌표의 범위는 1에서 UV의 요소 개수 사이이고, y 좌표는 모두 1입니다.

  • UV가 행렬이면 화살표의 x 좌표의 범위는 1에서 UV의 열 개수 사이이고, 화살표의 y 좌표의 범위는 1에서 UV의 행 개수 사이입니다.

예제

quiver(___,scale)은 다음과 같이 화살표의 길이를 조정합니다.

  • scale이 양수이면 quiver 함수는 화살표가 중첩되지 않도록 자동으로 길이를 조정한 다음 scale배만큼 늘입니다. 예를 들어, scale이 2이면 화살표의 길이가 2배로 늘어나고, scale이 0.5이면 화살표의 길이가 반으로 줄어듭니다.

  • scale'off' 또는 0이면(예: quiver(X,Y,U,V,'off')) 자동 스케일링이 비활성화됩니다.

예제

quiver(___,LineSpec)은 선 스타일, 마커, 색을 설정합니다. 마커는 XY로 지정된 점에 표시됩니다. LineSpec을 사용하여 마커를 지정하면 quiver는 화살촉을 표시하지 않습니다. 마커를 지정하고 화살촉을 표시하려면 대신 Marker 속성을 사용하십시오.

quiver(___,LineSpec,'filled')LineSpec으로 지정된 마커를 채웁니다.

quiver(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 퀴버 속성을 지정합니다. 속성 목록은 Quiver 속성을 참조하십시오. 다른 모든 입력 인수 다음에 이름-값 쌍 인수를 지정합니다. 이름-값 쌍의 인수는 퀴버 플롯에 있는 모든 화살표에 적용됩니다.

예제

quiver(ax,___)는 현재 좌표축(gca) 대신 ax로 지정된 좌표축에 퀴버 플롯을 만듭니다. ax 인수는 위에 열거된 구문의 입력 인수 조합보다 먼저 나올 수 있습니다.

예제

q = quiver(___)Quiver 객체를 반환합니다. 이 객체는 퀴버 플롯을 만든 후에 속성을 제어하는 경우에 유용합니다.

예제

모두 축소

북미 지역의 기류를 나타내는 샘플 데이터를 불러옵니다. 이 예제에서는 데이터의 서브셋을 선택합니다.

load('wind','x','y','u','v')
X = x(11:22,11:22,1);
Y = y(11:22,11:22,1);
U = u(11:22,11:22,1);
V = v(11:22,11:22,1);

선택한 서브셋의 퀴버 플롯을 만듭니다. 벡터 XY는 각 화살표의 기준 위치를 나타내고 UV는 각 화살표의 방향 성분을 나타냅니다. 기본적으로 quiver 함수는 화살표가 중첩되지 않도록 길이를 줄입니다. axis equal을 호출하여 각 축에 동일한 데이터 단위 길이를 사용합니다. 이렇게 하면 화살표가 올바른 방향을 가리킵니다.

quiver(X,Y,U,V)
axis equal

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

기본적으로 quiver 함수는 화살표가 중첩되지 않도록 길이를 줄입니다. 화살표 길이가 전적으로 UV에 의해 결정되도록 scale 인수를 0으로 설정하여 자동 스케일링을 비활성화합니다.

예를 들어, meshgrid 함수를 사용하여 X 값과 Y 값의 그리드를 만듭니다. 이들 값을 사용하여 방향 성분을 지정합니다. 그런 다음 자동 스케일링 없이 퀴버 플롯을 만듭니다.

[X,Y] = meshgrid(0:6,0:6);
U = 0.25*X;
V = 0.5*Y;
quiver(X,Y,U,V,0)

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

함수 z=xe-x2-y2의 기울기와 등고선을 플로팅합니다. quiver 함수를 사용하여 기울기를 플로팅하고 contour 함수를 사용하여 등고선을 플로팅합니다.

먼저 균일한 간격을 갖는 x 값과 y 값의 그리드를 만듭니다. 이들 값을 사용하여 z를 계산합니다. 그런 다음 점 사이의 간격을 지정하여 z의 기울기를 구합니다.

spacing = 0.2;
[X,Y] = meshgrid(-2:spacing:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,spacing);

기울기 벡터를 퀴버 플롯으로 표시합니다. 그런 다음 동일한 좌표축에 등고선을 표시합니다. 기울기 벡터가 등고선에 수직으로 표시되도록 axis equal을 호출하여 표시 화면을 조정합니다.

quiver(X,Y,DX,DY)
hold on
contour(X,Y,Z)
axis equal
hold off

Figure contains an axes object. The axes object contains 2 objects of type quiver, contour.

퀴버 플롯을 만들고 화살표의 색을 지정합니다.

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);
U = sin(Y);
V = cos(X);
quiver(X,Y,U,V,'r')

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

X 값과 Y 값의 그리드를 만들고 UV 방향 성분으로 구성된 두 개의 집합을 만듭니다.

[X,Y] = meshgrid(0:pi/8:pi,-pi:pi/8:pi);
U1 = sin(X);
V1 = cos(Y);
U2 = sin(Y);
V2 = cos(X); 

두 개의 좌표축 ax1ax2가 있는 타일 형식 레이아웃으로 플롯을 만듭니다. 각 좌표축에 퀴버 플롯과 제목을 추가합니다. (R2019b 이전 릴리스에서는 tiledlayout nexttile 대신 subplot 함수를 사용하십시오.)

tiledlayout(1,2)

ax1 = nexttile;
quiver(ax1,X,Y,U1,V1)
axis equal
title(ax1,'Left Plot')

ax2 = nexttile;
quiver(ax2,X,Y,U2,V2)
axis equal
title(ax2,'Right Plot')

Figure contains 2 axes objects. Axes object 1 with title Left Plot contains an object of type quiver. Axes object 2 with title Right Plot contains an object of type quiver.

퀴버 플롯을 만들고 quiver 객체를 반환합니다. 그런 다음 화살촉을 제거하고 각 화살표의 기준에 점 마커를 추가합니다.

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi);
U = sin(Y);
V = cos(X);

q = quiver(X,Y,U,V);
q.ShowArrowHead = 'off';
q.Marker = '.';

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

입력 인수

모두 축소

화살표 기준의 x 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 UV가 행렬이면 quiverXY를 행렬로 확장합니다. 이 경우 size(U)size(V)[length(Y) length(X)]와 같아야 합니다. 벡터를 행렬로 확장하는 것에 대한 자세한 내용은 meshgrid를 참조하십시오.

XY가 행렬이면 X, Y, U, V는 크기가 동일해야 합니다.

화살표 기준의 y 좌표로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이고 UV가 행렬이면 quiverXY를 행렬로 확장합니다. 이 경우 size(U)size(V)[length(Y) length(X)]와 같아야 합니다. 벡터를 행렬로 확장하는 것에 대한 자세한 내용은 meshgrid를 참조하십시오.

XY가 행렬이면 X, Y, U, V는 크기가 동일해야 합니다.

화살표의 x 성분으로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이면 size(U)size(V)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, U, V는 크기가 동일해야 합니다.

화살표의 y 성분으로, 스칼라, 벡터 또는 행렬로 지정됩니다.

XY가 벡터이면 size(U)size(V)[length(Y) length(X)]와 같아야 합니다.

XY가 행렬이면 X, Y, U, V는 크기가 동일해야 합니다.

선 스타일, 마커, 색으로, 기호를 포함하는 문자형 벡터 또는 string형으로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다.

LineSpec을 사용하여 마커를 지정하면 quiver는 화살촉을 표시하지 않습니다. 마커를 지정하고 화살촉을 표시하려면 대신 Marker 속성을 사용하십시오.

예: '--or'은 원 마커로 표시된 빨간색 파선입니다.

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

Sample of solid line

"--"파선

Sample of dashed line

":"점선

Sample of dotted line

"-."일점 쇄선

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

마커설명결과로 생성되는 마커
"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

색 이름짧은 이름RGB 3색모양
"red""r"[1 0 0]

Sample of the color red

"green""g"[0 1 0]

Sample of the color green

"blue""b"[0 0 1]

Sample of the color blue

"cyan" "c"[0 1 1]

Sample of the color cyan

"magenta""m"[1 0 1]

Sample of the color magenta

"yellow""y"[1 1 0]

Sample of the color yellow

"black""k"[0 0 0]

Sample of the color black

"white""w"[1 1 1]

Sample of the color white

화살표 스케일링 인자로, 양수 또는 'off'로 지정됩니다. 기본적으로 quiver 함수는 화살표가 중첩되지 않도록 자동으로 스케일링합니다. quiver 함수는 화살표를 자동으로 스케일링한 후에 스케일링 인자를 적용합니다.

scale을 지정하는 것은 quiver 객체의 AutoScaleFactor 속성을 설정하는 것과 같습니다. 예를 들어, scale2로 지정하면 화살표의 길이가 두 배로 늘어납니다. scale0.5로 지정하면 화살표의 길이가 반으로 줄어듭니다.

자동 스케일링을 비활성화하려면 scale'off' 또는 0으로 지정하십시오. off 또는 0으로 지정하면 Quiver 객체의 AutoScale 속성이 'off'로 설정되고 화살표의 길이는 전적으로 UV에 의해 결정됩니다.

대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 quiver 함수는 현재 좌표축을 사용합니다.

이름-값 인수

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

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'Color','r','LineWidth',1

참고

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

화살선과 화살촉의 너비로, 0보다 큰 스칼라 숫자형 값으로 지정됩니다(단위: 포인트). 1포인트는 1/72인치와 같습니다. 디폴트 값은 0.5포인트입니다.

예: 0.75

화살촉 표시 여부로, 'on' 또는 'off'나 숫자형 값 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. 값 'on'true와 동일하고 값 'off'false와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState 유형의 on/off 논리값으로 저장됩니다.

  • 'on' — 벡터를 화살촉과 함께 표시합니다.

  • 'off' — 벡터를 화살촉 없이 표시합니다.

화살표 길이에 대한 자동 스케일링 여부로, 'on' 또는 'off'나 숫자형 값 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. 값 'on'true와 동일하고 값 'off'false와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState 유형의 on/off 논리값으로 저장됩니다.

  • 'on' — 화살표 길이를 그리드가 정의된 좌표 데이터에 맞게 스케일링하고, 화살표가 중첩되지 않도록 화살표를 스케일링합니다. 그러면 quiver 또는 quiver3 함수가 AutoScaleFactor를 화살표 길이에 적용합니다.

  • 'off' — 화살표 길이를 스케일링하지 않습니다.

스케일링 인자로, 스칼라로 지정됩니다. 값 2는 화살표 길이를 두 배로 늘입니다. 값 0.5는 화살표 길이를 반으로 줄입니다.

이 속성은 AutoScale 속성이 'on'으로 설정된 경우에만 영향을 미칩니다.

예: 2

극좌표를 사용하여 퀴버 플롯을 만들려면 먼저 pol2cart 함수를 사용하여 카테시안 좌표로 변환하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

함수

속성