Main Content

fcontour

등고선 플로팅

  • Plot contours

설명

예제

fcontour(f)xy의 디폴트 구간 [-5 5] 위에 놓인 z의 일정한 높이에 대해 함수 z = f(x,y)의 등고선을 플로팅합니다.

예제

fcontour(f,xyinterval)은 지정된 구간에 플로팅합니다. xy 둘 다에 동일한 구간을 사용하려면 [min max] 형식의, 요소를 2개 가진 벡터로 xyinterval을 지정하십시오. 두 값에 각각 다른 구간을 사용하려면 [xmin xmax ymin ymax] 형식의, 요소를 4개 가진 벡터를 지정하십시오.

fcontour(___,LineSpec)은 등고선의 선 스타일과 색을 설정합니다. 예를 들어, '-r'은 빨간색 선을 지정합니다. 위에 나와 있는 입력 인수의 조합 다음에 이 옵션을 사용하십시오.

예제

fcontour(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 line 속성을 지정합니다.

fcontour(ax,___)는 현재 좌표축 대신 ax로 지정된 좌표축에 플로팅됩니다.

예제

fc = fcontour(___)FunctionContour 객체를 반환합니다. fc를 사용하여 특정 FunctionContour 객체의 속성을 쿼리하고 수정할 수 있습니다. 속성 목록은 FunctionContour 속성를 참조하십시오.

예제

모두 축소

-5<x<5-5<y<5의 디폴트 구간에 f(x,y)=sin(x)+cos(y)의 등고선을 플로팅합니다.

f = @(x,y) sin(x) + cos(y);
fcontour(f)

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

플로팅 구간을 fcontour의 두 번째 인수로 지정합니다. 동일한 좌표축의 다른 구간에 여러 입력값을 플로팅하는 경우, 축 제한이 모든 데이터를 표시할 수 있도록 조정됩니다. 이 동작으로 조각별 입력값을 플로팅할 수 있습니다.

다음과 같이 조각별 입력값을 플로팅합니다.

erf(x)+cos(y)-5<x<0sin(x)+cos(y)0<x<5

플로팅 구간은 -5<y<5입니다.

fcontour(@(x,y) erf(x) + cos(y),[-5 0 -5 5])
hold on
fcontour(@(x,y) sin(x) + cos(y),[0 5 -5 5])
hold off
grid on

Figure contains an axes object. The axes object contains 2 objects of type functioncontour.

선 너비가 2인 파선으로 x2-y2의 등고선을 플로팅합니다.

f = @(x,y) x.^2 - y.^2;
fcontour(f,'--','LineWidth',2)

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

hold on을 사용하여 동일한 좌표축에 sin(x)+cos(y)x-y를 플로팅합니다.

fcontour(@(x,y) sin(x)+cos(y))
hold on
fcontour(@(x,y) x-y)
hold off

Figure contains an axes object. The axes object contains 2 objects of type functioncontour.

e-(x/3)2-(y/3)2+e-(x+2)2-(y+2)2의 등고선을 플로팅합니다. 변수에 function contour 객체를 할당합니다.

f = @(x,y) exp(-(x/3).^2-(y/3).^2) + exp(-(x+2).^2-(y+2).^2);
fc = fcontour(f)

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

fc = 
  FunctionContour with properties:

     Function: @(x,y)exp(-(x/3).^2-(y/3).^2)+exp(-(x+2).^2-(y+2).^2)
    LineColor: 'flat'
    LineStyle: '-'
    LineWidth: 0.5000
         Fill: off
    LevelList: [0.2000 0.4000 0.6000 0.8000 1 1.2000 1.4000]

  Use GET to show all properties

function contour 객체의 속성을 설정하는 데 점 표기법을 사용하여 선 너비를 1로 변경하고 선 스타일을 파선으로 변경합니다. LevelList 속성을 설정하여 01에 가까운 등고선을 표시합니다. 컬러바를 추가합니다.

fc.LineWidth = 1;
fc.LineStyle = '--';
fc.LevelList = [1 0.9 0.8 0.2 0.1];
colorbar

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

다음의 등고선 사이에 있는 영역을 채워 일몰처럼 보이는 플롯을 생성합니다.

erf((y+2)3)-e(-0.65((x-2)2+(y-2)2)).

f = @(x,y) erf((y+2).^3) - exp(-0.65*((x-2).^2+(y-2).^2));
fcontour(f,'Fill','on');

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

보간 음영을 원하는 경우 fsurf 함수를 사용하고 이 함수의 'EdgeColor' 옵션을 'none'으로 설정하는데, 그 뒤에 view(0,90) 명령이 오도록 하십시오.

'LevelList' 옵션을 사용하여 fcontour에서 등고선을 그리는 값을 설정합니다.

f = @(x,y) sin(x) + cos(y);
fcontour(f,'LevelList',[-1 0 1])

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

'MeshDensity' 옵션을 사용하여 등고선의 해상도를 제어합니다. 'MeshDensity' 값을 키우면 더욱 부드럽고 정확한 플롯을 만들 수 있으며 줄이면 플로팅 속도를 높일 수 있습니다.

2×1 타일 형식 차트 레이아웃에 두 개의 플롯을 만듭니다. 첫 번째 플롯에서 sin(x)sin(y)의 등고선을 플로팅합니다. 정사각형의 코너가 서로 붙어 있지 않습니다. 이 문제를 수정하려면 두 번째 플롯에서 'MeshDensity'200으로 늘리십시오. 이제 코너가 서로 붙게 되는데, 이를 통해 'MeshDensity' 값을 늘리면 해상도가 증가함을 알 수 있습니다.

f = @(x,y) sin(x).*sin(y);
tiledlayout(2,1)
nexttile
fcontour(f)
title('Default Mesh Density (71)')

nexttile
fcontour(f,'MeshDensity',200)
title('Custom Mesh Density (200)')

Figure contains 2 axes objects. Axes object 1 with title Default Mesh Density (71) contains an object of type functioncontour. Axes object 2 with title Custom Mesh Density (200) contains an object of type functioncontour.

xsin(y)-ycos(x)를 플로팅합니다. 그리드 선을 표시하고 제목과 축 레이블을 추가합니다.

fcontour(@(x,y) x.*sin(y) - y.*cos(x), [-2*pi 2*pi], 'LineWidth', 2);
grid on
title({'xsin(y) - ycos(x)','-2\pi < x < 2\pi and -2\pi < y < 2\pi'})
xlabel('x')
ylabel('y')

Figure contains an axes object. The axes object with title xsin(y) blank - blank ycos(x) blank - 2 pi blank < blank x blank < blank 2 pi blank and blank - 2 pi blank < blank y blank < blank 2 pi, xlabel x, ylabel y contains an object of type functioncontour.

axes 객체의 XTickLabel 속성과 XTick 속성을 설정하여 x축 눈금 값과 관련 레이블을 설정합니다. gca를 사용하여 axes 객체에 액세스합니다. 마찬가지로, y축 눈금 값과 관련 레이블을 설정합니다.

ax = gca;
ax.XTick = ax.XLim(1):pi/2:ax.XLim(2);
ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',...
    '\pi/2','\pi','3\pi/2','2\pi'};

ax.YTick = ax.YLim(1):pi/2:ax.YLim(2);
ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0',...
    '\pi/2','\pi','3\pi/2','2\pi'};

Figure contains an axes object. The axes object with title xsin(y) blank - blank ycos(x) blank - 2 pi blank < blank x blank < blank 2 pi blank and blank - 2 pi blank < blank y blank < blank 2 pi, xlabel x, ylabel y contains an object of type functioncontour.

입력 인수

모두 축소

플로팅할 함수로, 명명된 함수나 익명 함수에 대한 함수 핸들로 지정됩니다.

z = f(x,y) 형식의 함수를 지정해야 합니다. 이 함수는 행렬 입력 인수 두 개를 받고 같은 크기를 갖는 행렬 출력 인수 하나를 반환해야 합니다. 최적의 성능을 구현하려면 행렬 연산자 대신 배열 연산자를 사용하십시오. 예를 들어, *(mtimes) 대신 .*(times)를 사용하십시오.

예: f = @(x,y) sin(x) + cos(y);

xy의 플로팅 구간으로, 다음 형식 중 하나로 지정됩니다.

  • [min max] 형식의 벡터 — xy 둘 다에 구간 [min max]를 사용합니다.

  • [xmin xmax ymin ymax] 형식의 벡터 — x에 구간 [xmin xmax]를, y에 구간 [ymin ymax]를 사용합니다.

axes 객체입니다. axes 객체를 지정하지 않으면 fcontour는 현재 좌표축을 사용합니다.

선 스타일과 색으로, 선 스타일 지정자나 색 지정자, 또는 둘 다를 포함하는 문자형 벡터 또는 string형으로 지정됩니다.

예: '--r'은 빨간색 파선을 지정합니다.

다음 두 표에는 선 스타일과 색에 대한 옵션이 나열되어 있습니다.

선 스타일 지정자설명
-실선(디폴트 값)
--파선
:점선
-.일점 쇄선
색 지정자설명

y

노란색

m

자홍색

c

녹청색

r

빨간색

g

녹색

b

파란색

w

흰색

k

검은색

이름-값 인수

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

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

예: 'MeshDensity',30

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

방향별 계산 지점 개수로, 숫자로 지정됩니다. 디폴트 값은 71입니다. fcontour가 적응형 실행을 사용하므로 실제 계산 지점 개수는 더 많습니다.

예: 30

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

  • 'on' 값은 등고선 사이의 공간을 색으로 채웁니다.

  • 'off' 값은 등고선 사이의 공간을 채우지 않은 상태로 둡니다.

등고선 레벨로, z 값의 벡터로 지정됩니다. 기본적으로 fcontour 함수는 ZData 속성의 값 범위를 포괄하는 값을 선택합니다.

이 속성을 설정하면 연결된 모드 속성이 수동으로 설정됩니다.

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

등고선 사이의 간격으로, 스칼라 숫자형 값으로 지정됩니다. 예를 들어, 값 2를 지정하면 2의 증분 간격마다 등고선이 그려집니다. 기본적으로 LevelStepZData 값을 사용하여 결정됩니다.

이 속성을 설정하면 연결된 모드 속성이 'manual'로 설정됩니다.

예: 3.4

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

등고선 색으로, 'flat', RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름으로 지정됩니다. 각 등고선에 다른 색을 사용하려면 'flat'을 지정하십시오. 이 색은 등고선 값, 컬러맵, 데이터 값의 컬러맵 스케일링에 의해 결정됩니다. 색 스케일링에 대한 자세한 내용은 컬러맵 제한 제어하기 항목을 참조하십시오.

모든 등고선에 대해 동일한 색을 사용하려면 RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름을 지정하십시오.

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

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

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

출력 인수

모두 축소

하나 이상의 FunctionContour 객체로, 스칼라나 벡터로 반환됩니다. 이러한 객체를 사용하여 특정 등고선 플롯의 속성을 쿼리하고 수정할 수 있습니다. 속성 목록은 FunctionContour 속성를 참조하십시오.

버전 내역

R2016a에 개발됨

참고 항목

함수

속성