Main Content

곡면 플롯 데이터와 컬러맵 간의 관계

surf 또는 mesh와 같은 함수를 사용하여 곡면 플롯을 생성할 때, colormap 함수를 호출하여 색 체계를 사용자 지정할 수 있습니다. 모양을 더 제어하려는 경우 곡면에 대한 색의 방향이나 패턴을 변경할 수 있습니다. 이러한 사용자 지정을 수행하려면 곡면과 컬러맵 사이의 관계를 제어하는 배열의 값을 변경해야 합니다.

곡면과 컬러맵 간의 관계

Surface 객체의 CData 속성에는 플롯의 특정 위치를 컬러맵의 색과 연결하는 인덱싱 배열 C가 포함되어 있습니다. C는 곡면 z = f(x,y)에 대해 다음 관계를 가집니다.

  • CZ와 크기가 동일합니다. 여기서 Z는 곡면의 각 그리드 점에서의 f(x,y) 값을 포함하는 배열입니다.

  • C(i,j) 값은 곡면상의 그리드 위치 (i,j)의 색을 제어합니다.

  • 기본적으로, CZ와 같으며, 이는 고도에 따라 달라지는 색에 해당합니다.

  • 기본적으로, C의 범위는 컬러맵 배열의 행 개수에 선형적으로 매핑됩니다.

예를 들어, Z = X + Y의 3×3 샘플링은 N개 항목을 포함하는 컬러맵에 대해 다음 관계를 가집니다.

The relationship between matrix C, a colormap matrix, and a surface plot. The smallest value of C maps to the first row in the colormap matrix, and that color appears at the corresponding location of the plot. Similarly, the largest value of C maps to the last row in the colormap matrix, and that color appears at the corresponding location of the plot.

가장 작은 값(-2)은 컬러맵의 첫 번째 행에 매핑됩니다. 가장 큰 값(2)은 컬러맵의 마지막 행에 매핑됩니다. C의 중간값은 컬러맵의 중간 행에 선형적으로 매핑됩니다.

참고

앞에 나온 곡면 플롯은 색이 곡면의 꼭짓점에 할당되는 방법을 보여줍니다. 그러나, 디폴트 동작은 단색으로 패치 면을 채우는 것입니다. 이 단색은 주변 꼭짓점에 할당된 색을 기준으로 합니다. 자세한 내용은 FaceColor 속성 설명을 참조하십시오.

색의 방향이나 패턴 변경하기

디폴트 값 C=Z를 사용하는 경우 색은 Z가 변경됨에 따라 달라집니다.

[X,Y] = meshgrid(-10:10);
Z = X + Y;
s = surf(X,Y,Z);
xlabel('X');
ylabel('Y');
zlabel('Z');

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

곡면을 생성할 때 C를 지정하여 이러한 동작을 변경할 수 있습니다. 예를 들어, 다음 곡면의 색은 X에 따라 달라집니다.

C = X;
s = surf(X,Y,Z,C);
xlabel('X');
ylabel('Y');
zlabel('Z');

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

또는, CData 속성을 직접 설정할 수 있습니다. 다음 명령을 사용하면 색이 Y에 따라 달라집니다.

s.CData = Y;

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

색이 단일 차원의 변경 내용에 따라 달라질 필요는 없습니다. 실제로, Z와 크기가 같다면 어떤 배열이든 CData가 될 수 있습니다. 예를 들어, 다음 평면의 색은 sinc 함수의 형태를 따릅니다.

R = sqrt(X.^2 + Y.^2) + eps;
s.CData = sin(R)./(R);

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

참고 항목

함수

속성

관련 항목