Main Content

contourf

채워진 2차원(Filled 2-D) 등고선 플롯

  • Filled contour plot

설명

예제

contourf(Z)는 행렬 Z의 등치선을 포함하는 채워진 등고선 플롯을 만듭니다. 여기서 Z는 x-y 평면의 높이 값을 포함합니다. MATLAB®은 표시할 등고선을 자동으로 선택합니다. Z의 열과 행 인덱스는 각각 평면의 x, y 좌표입니다.

contourf(X,Y,Z)Z에 들어 있는 값에 대한 x 및 y 좌표를 지정합니다.

예제

contourf(___,levels)는 위에 열거된 구문에서 표시할 등고선을 마지막 인수로 지정합니다. levels를 스칼라 값 n으로 지정하면 n개의 자동으로 선택된 레벨(높이)에 등고선이 표시됩니다. 특정 높이에 등고선을 그리려면 levels를 단조 증가하는 값으로 구성된 벡터로 지정하십시오. 하나의 높이(k)에 등고선을 그리려면 levels를 요소를 2개 가진 행 벡터 [k k]로 지정하십시오.

예제

contourf(___,LineSpec)은 등고선의 스타일과 색을 지정합니다.

예제

contourf(___,Name,Value)는 하나 이상의 이름-값 쌍 인수를 사용하여 등고선 플롯에 대한 추가 옵션을 지정합니다. 다른 모든 입력 인수 다음에 옵션을 지정합니다. 속성 목록은 Contour 속성를 참조하십시오.

contourf(ax,___)는 타깃 좌표축에 등고선 플롯을 표시합니다. 위에 열거된 구문에서 좌표축을 첫 번째 인수로 지정합니다.

M = contourf(___)는 각 레벨에서의 꼭짓점의 (x, y) 좌표를 포함하는 등고선 행렬 M을 반환합니다.

예제

[M,c] = contourf(___)는 등고선 행렬과 contour 객체 c를 반환합니다. 등고선 플롯을 표시한 뒤에 c를 사용하여 속성을 설정하십시오.

예제

모두 축소

Z를 2개의 변수를 가진 함수로 정의합니다. 여기서는 peaks 함수를 호출하여 Z를 만듭니다. 그런 다음 Z의 채워진 등고선 플롯을 표시합니다. 등고선 레벨은 MATLAB®이 선택하도록 합니다.

Z = peaks;
contourf(Z)

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

Z를 2개의 변수 XY의 함수로 정의합니다. 그런 다음 Z의 10개 레벨에서 등고선을 표시합니다.

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X) + cos(Y);
contourf(X,Y,Z,10)

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

ZXY의 함수로 정의합니다. 여기서는 peaks 함수를 호출하여 X, Y, Z를 만듭니다. 그런 다음 레벨 23에서 등고선을 표시합니다.

흰색 영역은 높이가 2보다 작은 영역을 나타냅니다. 보라색 영역은 높이가 2에서 3 사이인 영역을 나타냅니다. 노란색 영역은 높이가 3보다 큰 영역을 나타냅니다.

[X,Y,Z] = peaks(50);
contourf(X,Y,Z,[2 3],'ShowText','on')

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

R2022b 이상

소수점 뒤 1자리 숫자와 그 다음에 문자 m이 나오는 레이블을 표시하는 등고선 플롯을 만듭니다. FaceAlpha 속성을 0.25로 설정하여 부분적으로 투명한 채우기 색을 지정합니다.

contourf(peaks,[-4 0 2],"ShowText",true,"LabelFormat","%0.1f m", ...
    "FaceAlpha",0.25)

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

R2022b 이상

값을 계산해야 할 때 레이블의 형식을 지정하는 함수를 지정할 수 있습니다. 예를 들어, 다양한 단위의 레이블 값을 계산하는 함수를 정의할 수 있습니다.

mylabelfun.m이라는 프로그램 파일에 이 함수를 정의합니다. 이 함수는 입력값을 미터에서 피트로 변환하고 미터로 된 각 값이 포함된(상응하는 피트 값이 괄호 안에 표시됨) string형 벡터를 반환합니다.

function labels = mylabelfun(vals)
feetPerMeter = 3.28084;
feet = round(vals.*feetPerMeter);
labels = vals + " m (" + feet + " ft)";
labels(vals == 0) = "0 m";
end

그런 다음 등고선 플롯을 만들고 LabelFormat 속성을 mylabelfun에 대한 핸들로 지정합니다. FaceAlpha 값을 0.25로 설정하여 부분적으로 투명한 채우기 색을 지정합니다.

contourf(peaks,[-4 0 2],"ShowText",true,"LabelFormat",@mylabelfun, ...
    "FaceAlpha",0.25)

ZXY의 함수로 정의합니다. 여기서는 peaks 함수를 호출하여 X, Y, Z를 만듭니다. 그런 다음 Z = 2에 등고선을 표시합니다.

[X,Y,Z] = peaks;
contourf(X,Y,Z,[2 2])

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

등고선 플롯을 만들고 파선 스타일을 지정합니다.

[X,Y,Z] = peaks;
contourf(X,Y,Z,'--')

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

채워진 등고선 플롯을 만듭니다. LineWidth 속성을 3으로 설정하여 등고선의 두께를 늘립니다.

Z = peaks;
[M,c] = contourf(Z);
c.LineWidth = 3;

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

곡면에 불연속이 있는 곳마다 NaN 값을 삽입합니다. 이 값을 삽입한 영역에서는 contourf 함수가 등고선을 그리지 않습니다.

행렬 Zpeaks 함수의 샘플링으로 정의합니다. 열 26의 모든 값을 NaN 값으로 대체합니다. 그런 다음 수정된 Z 행렬의 등고선을 플로팅합니다.

Z = peaks;
Z(:,26) = NaN;
contourf(Z)

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

입력 인수

모두 축소

x 좌표로, Z와 크기가 동일한 행렬 또는 길이가 n인 벡터로 지정됩니다(여기서 [m,n] = size(Z)임). X의 디폴트 값은 벡터 (1:n)입니다.

X가 행렬이면 한 차원에서는 값이 순증가 또는 순감소하고 다른 한 차원에서는 값이 일정해야 합니다. 값이 변하는 차원은 Y의 값이 변하는 차원과 반대 차원이어야 합니다. meshgrid 함수를 사용하여 XY 행렬을 만들 수 있습니다.

X가 벡터이면 값은 순증가 또는 순감소해야 합니다.

예: X = 1:10

예: X = [1 2 3; 1 2 3; 1 2 3]

예: [X,Y] = meshgrid(1:10)

Contour 객체의 XData 속성에는 x 좌표가 저장됩니다.

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

y 좌표로, Z와 크기가 동일한 행렬 또는 길이가 m인 벡터로 지정됩니다(여기서 [m,n] = size(Z)임). Y의 디폴트 값은 벡터 (1:m)입니다.

Y가 행렬이면 한 차원에서는 값이 순증가 또는 순감소하고 다른 한 차원에서는 값이 일정해야 합니다. 값이 변하는 차원은 X의 값이 변하는 차원과 반대 차원이어야 합니다. meshgrid 함수를 사용하여 XY 행렬을 만들 수 있습니다.

Y가 벡터이면 값은 순증가 또는 순감소해야 합니다.

예: Y = 1:10

예: Y = [1 1 1; 2 2 2; 3 3 3]

예: [X,Y] = meshgrid(1:10)

Contour 객체의 YData 속성에는 y 좌표가 저장됩니다.

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

z 좌표로, 행렬로 지정됩니다. 이 행렬은 적어도 2개의 행과 2개의 열을 가져야 하며, 2개 이상의 서로 다른 값을 포함해야 합니다.

예: Z = peaks(20)

Contour 객체의 ZData 속성에는 z 좌표가 저장됩니다.

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

등고선 레벨로, 스칼라 정수나 벡터로 지정됩니다. 이 인수를 사용하여 등고선의 개수와 위치를 제어합니다. 레벨을 지정하지 않으면 contourf 함수는 레벨을 자동으로 선택합니다.

  • 자동으로 선택된 n개의 높이에 등고선을 그리려면 levels를 스칼라 값 n으로 지정하십시오.

  • 특정 높이에 등고선을 그리려면 levels를 단조 증가하는 값으로 구성된 벡터로 지정하십시오.

  • 하나의 높이 k에 등고선을 그리려면 levels를 요소를 2개 가진 행 벡터 [k k]로 지정하십시오.

contourf 함수는 현재 컬러맵을 사용하여 플롯에서 레벨 사이의 공간을 채웁니다. 첫 번째 색은 가장 낮은 레벨과 바로 위 레벨 사이의 공간을 채웁니다. 마지막 색은 플롯에서 가장 높은 레벨보다 큰 Z 값에 대응합니다. Z가 플롯에 표시된 가장 낮은 레벨보다 작은 값을 포함하는 경우 가장 낮은 레벨과 가장 작은 Z-값 사이의 영역은 흰색이 됩니다.

예: contourf(peaks,10)peaks 함수에 대해 자동으로 선택된 10개의 높이에 등고선을 그립니다.

예: contourf(peaks,[-4 0 4])peaks 함수에 대해 3개의 특정 높이(-4, 0, 4)에 등고선을 그립니다.

예: contourf(peaks,[3 3])peaks 함수의 높이가 3인 등고선을 그립니다.

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

선 스타일과 색으로, 문자와 기호를 포함하는 문자형 벡터 또는 string형 스칼라로 지정됩니다. 문자와 기호는 어떤 순서로든 표시할 수 있습니다. 선 스타일, 선 색 또는 둘 다 지정할 수 있습니다. 'o'와 같은 마커 기호는 무시됩니다.

예: '--g'는 녹색 파선입니다.

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

Sample of solid line

"--"파선

Sample of dashed line

":"점선

Sample of dotted line

"-."일점 쇄선

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

색 이름짧은 이름모양
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 contourf는 현재 좌표축에 플로팅됩니다.

이름-값 인수

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

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

예: contourf(Z,'ShowText','on')은 등고선 레이블을 표시합니다.

참고

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

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

  • 'on' — 등고선을 따라 높이 값을 표시합니다.

  • 'off' — 등고선에 레이블을 지정하지 않습니다.

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

등고선을 따라 표시되는 레이블의 간격으로, 스칼라 값으로 지정됩니다(단위: 포인트). 여기서 1포인트는 1/72인치입니다(1인치 = 2.54cm). 이 속성을 사용하여 등고선을 따라 표시되는 등고선 레이블의 개수를 제어합니다. 값이 작을수록 더 많은 레이블이 표시됩니다.

LabelSpacing 속성이 영향을 미치려면 ShowText 속성을 'on'으로 설정해야 합니다.

clabel 함수를 사용하여 레이블을 표시할 경우에는 LabelSpacing 속성이 영향을 미치지 않으며 플롯에 선 하나당 레이블 하나가 표시됩니다.

출력 인수

모두 축소

등고선 행렬로, 다음 형식의 2행 행렬로 반환됩니다.

Z1, x1,1, x1,2, ..., x1,N1, Z2, x2,1, x2,2, ..., x2,N2, Z3, ...
N1, y1,1, y1,2, ..., y1,N1, N2, y2,1, y2,2, ..., y2,N2, N3, ...

행렬의 열은 등고선을 정의합니다. 각 등고선은 Z 값 및 N 값을 포함하는 열로 시작합니다.

  • Zi — i번째 등고선의 높이

  • Ni — i번째 등고선의 꼭짓점 개수

  • (xij, yij) — i번째 등고선의 꼭짓점 좌표임. 여기서 j의 범위는 1에서 Ni까지임

Contour 객체입니다. 등고선 플롯을 표시한 뒤에 이 객체를 사용하여 속성을 설정합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨