이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

surf

설명

예제

surf(X,Y,Z)는 3차원 곡면 플롯을 만듭니다. 이 함수는 행렬 Z의 값을 XY로 정의된 x-y 평면의 그리드 위 높이로 플로팅합니다. 또한 이 함수는 색 데이터에 대해 Z를 사용하므로, 색은 높이에 비례합니다.

예제

surf(X,Y,Z,C)는 추가적으로 곡면 색을 지정합니다.

surf(Z)는 곡면을 만들고, Z에 있는 요소의 열 인덱스와 행 인덱스를 각각 x 좌표와 y 좌표로 사용합니다.

surf(Z,C)는 추가적으로 곡면 색을 지정합니다.

surf(ax,___)는 현재 좌표축 대신 ax로 지정된 좌표축에 플로팅됩니다. 좌표축을 첫 번째 입력 인수로 지정합니다.

예제

surf(___,Name,Value)는 하나 이상의 이름-값 쌍의 인수를 사용하여 surface 속성을 지정합니다. 예를 들어, 'FaceAlpha',0.5는 반투명 곡면을 만듭니다. 다른 모든 입력 인수 다음에 이름-값 쌍을 지정합니다.

예제

s = surf(___)는 chart surface 객체를 반환합니다. 만든 후 이 곡면을 수정하려면 s를 사용하십시오. 목록을 보려면 Surface 속성를 참조하십시오.

예제

모두 축소

크기가 동일한 행렬로 X, Y, Z를 만듭니다. 그런 다음, 데이터를 곡면으로 플로팅합니다. 곡면은 높이 데이터와 색 데이터에 모두 Z를 사용합니다.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)

4번째 행렬 입력 인수 C를 포함시켜서 곡면 플롯에 대한 색을 지정합니다. CZ와 크기가 동일한 행렬로 지정하여 컬러맵 색을 사용합니다. 그래프에 컬러바를 추가하여 C 맵의 데이터 값이 컬러맵의 색에 매핑되는 방식을 표시합니다.

[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar

4번째 행렬 입력 인수 CO를 포함시켜서 곡면 플롯에 대한 색을 지정합니다. CO를 RGB 3색 값으로 구성된 mxnx3 배열로 만들어서 트루컬러를 사용합니다(여기서 Z는 mxn임). 배열의 첫 번째 페이지는 각 색의 빨간색 성분을 나타내고, 두 번째 페이지는 녹색 성분을 나타내며, 세 번째 페이지는 파란색 성분을 나타냅니다.

[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
surf(X,Y,Z,CO)

FaceAlpha 속성을 이름-값 쌍 인수로 설정하여 반투명 곡면을 만듭니다. surface 객체를 변수 s에 할당합니다.

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)

s = 
  Surface with properties:

       EdgeColor: [0 0 0]
       LineStyle: '-'
       FaceColor: 'flat'
    FaceLighting: 'flat'
       FaceAlpha: 0.5000
           XData: [21x21 double]
           YData: [21x21 double]
           ZData: [21x21 double]
           CData: [21x21 double]

  Show all properties

surface 객체가 s에 생성되면 이를 통해 곡면의 속성에 액세스하고 수정할 수 있습니다. 예를 들어, EdgeColor 속성을 설정하여 가장자리의 표시를 해제합니다.

s.EdgeColor = 'none';

입력 인수

모두 축소

x 좌표로, Z와 크기가 동일한 행렬 또는 길이가 n인 벡터로 지정됩니다(여기서 [m,n] = size(Z)임). 임의 정의역에 대해 행렬을 만들려면 meshgrid 함수를 사용하십시오.

surface 객체의 XData 속성은 x 값을 저장합니다.

예: [X,Y] = meshgrid(-5:0.5:5)

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

y 좌표로, Z와 크기가 동일한 행렬 또는 길이가 m인 벡터로 지정됩니다(여기서 [m,n] = size(Z)임). 임의 정의역에 대해 행렬을 만들려면 meshgrid 함수를 사용하십시오.

surface 객체의 YData 속성은 y 값을 저장합니다.

예: [X,Y] = meshgrid(-5:0.5:5)

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

z 좌표로, 행렬로 지정됩니다. 색을 지정하지 않으면 Z는 곡면 색도 설정합니다.

surface 객체의 ZData 속성은 z 값을 저장합니다.

예: Z = [1 2 3; 4 5 6]

예: Z = sin(x) + cos(y)

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

각 꼭짓점의 색으로, Z와 크기가 동일한 행렬 또는 RGB 3색으로 구성된 mxnx3 배열로 지정됩니다(여기서 Zmxn임).

  • 컬러맵 색을 사용하려는 경우 C를 행렬로 지정하십시오. surface 객체의 CDataMapping 속성은 C의 값이 컬러맵의 색에 매핑되는 방식을 제어합니다.

  • 트루컬러를 사용하려는 경우 C를 RGB 3색으로 구성된 배열로 지정하십시오.

surface 객체의 CData 속성은 색 데이터를 저장합니다. 곡면 색 지정을 추가로 제어하려면 FaceColor 속성과 EdgeColor 속성을 사용하십시오.

플롯이 그려질 좌표축으로, axes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 surf는 현재 좌표축에 플로팅됩니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: surf(X,Y,Z,'FaceAlpha',0.5,'EdgeColor','none')은 가장자리를 그리지 않는 반투명 곡면을 만듭니다.

참고

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

모서리 선 색으로, 여기에 나열된 값 중 하나로 지정됩니다. 디폴트 색 [0 0 0]은 검은색 모서리에 해당합니다.

설명
'none'모서리를 그리지 않습니다.
'flat'

CData 속성의 값을 기반으로 하여 각 모서리에 다른 색을 사용합니다. 먼저 CData 속성을 ZData와 크기가 같은 행렬로 지정해야 합니다. 각 면 첫 번째 꼭짓점의 색 값(양의 x와 y 방향)은 인접 모서리의 색을 결정합니다. EdgeAlpha 속성이 'interp'로 설정된 경우 이 값을 사용할 수 없습니다.

'interp'

CData 속성의 값을 기반으로 하여 각 모서리에 보간된 색을 사용합니다. 먼저 CData 속성을 ZData와 크기가 같은 행렬로 지정해야 합니다. 꼭짓점에서 색 값을 선형적으로 보간하므로 모서리마다 색이 달라집니다. EdgeAlpha 속성이 'flat'으로 설정된 경우 이 값을 사용할 수 없습니다.

RGB 3색, 16진수 색 코드 또는 색 이름

모든 모서리에 지정된 색을 사용합니다. 이 옵션은 CData 속성의 색 값을 사용하지 않습니다.

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'

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

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

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

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

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

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

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

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

'--'파선

':'점선

'-.'일점 쇄선

'none'선 없음선 없음

면 색으로, 이 표에 있는 값 중 하나로 지정됩니다.

설명
'flat'

CData 속성의 값에 따라 각 면에 각각 다른 색을 사용합니다. 먼저 CData 속성을 ZData와 크기가 같은 행렬로 지정해야 합니다. 각 면 첫 번째 꼭짓점의 색 값(양의 x와 y 방향)은 전체 면의 색을 결정합니다. FaceAlpha 속성이 'interp'로 설정된 경우 이 값을 사용할 수 없습니다.

'interp'

CData 속성의 값에 따라 각 면에 보간된 색을 사용합니다. 먼저 CData 속성을 ZData와 크기가 같은 행렬로 지정해야 합니다. 꼭짓점에서 색 값을 보간하므로 면마다 색이 달라집니다. FaceAlpha 속성이 'flat'으로 설정된 경우 이 값을 사용할 수 없습니다.

RGB 3색, 16진수 색 코드 또는 색 이름

모든 면에 지정된 색을 사용합니다. 이 옵션은 CData 속성의 색 값을 사용하지 않습니다.

'texturemap'곡면에 맞게 CData의 색 데이터를 변환합니다.
'none'면을 그리지 않습니다.

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'

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

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

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

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

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

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

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

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

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

면 투명도로, 다음 값 중 하나로 지정됩니다.

  • 범위 [0,1] 사이에 있는 스칼라 값 — 모든 면에 균일한 투명도를 사용합니다. 값이 1이면 완전히 불투명하고 0이면 완전히 투명합니다. 01 사이의 값을 지정하면 반투명해집니다. 이 옵션은 AlphaData 속성의 투명도 값을 사용하지 않습니다.

  • 'flat'AlphaData 속성의 값에 따라 각 면에 서로 다른 투명도를 사용합니다. 첫 번째 꼭짓점의 투명도 값에 따라 전체 면의 투명도가 결정됩니다. 먼저 AlphaData 속성을 ZData 속성과 크기가 같은 행렬로 지정해야 합니다. 또한 FaceColor 속성이 'flat'으로 설정되어 있어야 합니다.

  • 'interp'AlphaData 속성의 값에 따라 각 면에 보간된 투명도를 사용합니다. 꼭짓점의 값을 보간하기 때문에 각 면에서 투명도가 다릅니다. 먼저 AlphaData 속성을 ZData 속성과 크기가 같은 행렬로 지정해야 합니다. 또한 FaceColor 속성이 'interp'로 설정되어 있어야 합니다.

  • 'texturemap' — 곡면에 맞게 AlphaData의 데이터를 변환합니다.

면에 대한 light 객체 효과로, 다음 값 중 하나로 지정됩니다.

  • 'flat' — 각 면에 걸쳐 균일하게 조명을 적용합니다. 이 값을 사용하면 패싯 처리된 객체를 볼 수 있습니다.

  • 'gouraud' — 각 면 간에 조명이 달라집니다. 꼭짓점에서 조명을 계산한 후 각 면 간에 조명을 선형으로 보간합니다. 이 값을 사용하면 곡선 처리된 곡면을 볼 수 있습니다.

  • 'none' — light 객체의 조명을 면에 적용하지 않습니다.

light 객체를 좌표축에 추가하려면 light 함수를 사용하십시오.

참고

'phong' 값은 제거되었습니다. 'gouraud'를 대신 사용하십시오.

확장 기능

R2006a 이전에 개발됨