Main Content

pcolor

의사색상 플롯

  • Pseudocolor plot

설명

예제

pcolor(C)는 행렬 C의 값을 사용하여 의사색상 플롯을 생성합니다. 의사색상 플롯은 행렬 데이터를 색이 적용된 셀(이라고도 함)로 구성된 배열로 표시합니다. MATLAB®은 x-y 평면 위에 이 플롯을 평면 형태로 생성합니다. 곡면은 면의 코너(또는 꼭짓점)에 대응하는 x 좌표와 y 좌표로 구성된 그리드로 정의됩니다. 그리드는 영역 X=1:nY=1:m에 걸쳐 있습니다. 여기서 [m,n] = size(C)입니다. 행렬 C는 꼭짓점 색을 지정합니다. 각 면의 색은 면을 둘러싸는 4개의 꼭짓점 중 하나의 색에 의해 결정됩니다. 4개의 꼭짓점 중에서 x-y 그리드에 가장 먼저 나타나는 꼭짓점이 면의 색을 결정합니다.

예제

pcolor(X,Y,C)는 꼭짓점의 x, y 좌표를 지정합니다. C의 크기는 x-y 좌표 그리드의 크기와 일치해야 합니다. 예를 들어, XY가 m×n 그리드를 정의하는 경우, C는 m×n 행렬이어야 합니다.

예제

pcolor(ax,___)는 플롯의 타깃 좌표축을 지정합니다. 위에 열거된 모든 구문에서 ax를 첫 번째 인수로 지정하십시오.

예제

s = pcolor(___)Surface 객체를 반환합니다. 플롯을 생성한 후에 s를 사용하여 속성을 설정합니다. 속성 목록은 Surface 속성를 참조하십시오.

예제

모두 축소

좌표 벡터 XY, 그리고 5개의 색(빨간색, 녹색, 파란색, 노란색, 검은색)을 포함하는 컬러맵 mymap을 만듭니다.

X = [1 2 3; 1 2 3; 1 2 3];
Y = X';
mymap = [1 0 0; 0 1 0; 0 0 1; 1 1 0; 0 0 0];

컬러맵의 색을 9개의 꼭짓점으로 매핑하는 행렬 C를 만듭니다. 9개의 꼭짓점 중에서 4개가 면의 색을 결정합니다. 이러한 꼭짓점의 색을 지정하여 면을 각각 빨간색(1), 녹색(2), 파란색(3), 노란색(4)으로 만듭니다. 나머지 꼭짓점의 색을 검은색(5)으로 설정합니다.

C = [3 4 5; 1 2 5; 5 5 5];

면을 플로팅하고, colormap 함수를 호출하여 디폴트 컬러맵을 mymap으로 교체합니다.

pcolor(X,Y,C)
colormap(mymap)

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

아다마르 행렬의 요소는 1 또는 -1입니다. 이 행렬을 시각화하는 좋은 방법은 색을 2개 가진 컬러맵을 사용하는 것입니다.

20×20 아다마르 행렬을 만듭니다. 그런 다음 흑백 컬러맵을 사용하여 행렬을 플로팅합니다. axis 함수를 사용하여 y축의 방향을 바꾸고 축 선의 길이를 같게 설정합니다.

C = hadamard(20);
pcolor(C)
colormap(gray(2))
axis ij
axis square

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

색상 행렬 C를 만듭니다. 그런 다음 C의 의사색상 플롯을 만들고, 반환 인수 sSurface 객체를 저장합니다.

C = [1 2 3; 4 5 6; 7 8 9];
s = pcolor(C);

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

sEdgeColor 속성을 설정하여 테두리 색을 변경합니다. LineWidth 속성을 설정하여 테두리를 두껍게 만듭니다.

s.EdgeColor = [1 0.7 0.3];
s.LineWidth = 6;

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

색상 행렬 C를 만듭니다. 그런 다음 C의 의사색상 플롯을 만들고, 반환 인수 sSurface 객체를 저장합니다.

C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15];
s = pcolor(C);

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

전체 면에 대해 색을 보간하려면 sFaceColor 속성을 'interp'로 설정하십시오.

s.FaceColor = 'interp';

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

꼭짓점으로 구성된 규칙적인 간격의 그리드를 정의하는 행렬 XY를 만듭니다. 행렬 LYY의 로그로 계산합니다. 그런 다음 색 인덱스로 구성된 행이 교차로 포함된 행렬 C를 만듭니다.

[X,Y] = meshgrid(1:20);
LY = log(Y);
colorscale = [1:20; 20:-1:1];
C = repmat(colorscale,10,1);

C에 지정된 색을 사용하여 XLY를 플로팅합니다. 그런 다음 y축의 눈금 레이블을 조정합니다.

s = pcolor(X,LY,C);
tickvals = LY(2:2:20,1)';
set(gca,'YTick',tickvals);

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

꼭짓점으로 구성된 규칙적인 간격의 그리드를 정의하는 행렬 XY를 만듭니다. 행렬 XXYYXY의 함수로 계산합니다. 그런 다음 색 인덱스로 구성된 행이 교차로 포함된 행렬 C를 만듭니다.

[X,Y] = meshgrid(-3:6/17:3);
XX = 2*X.*Y;
YY = X.^2 - Y.^2;
colorscale = [1:18; 18:-1:1];
C = repmat(colorscale,9,1);

C의 색을 사용하여 XXYY를 플로팅합니다.

pcolor(XX,YY,C);

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

R2019b부터는 tiledlayout 함수와 nexttile 함수를 사용하여 플롯을 타일 형식 배열로 표시할 수 있습니다. tiledlayout 함수를 호출하여 1×2 타일 형식 차트 레이아웃을 만듭니다. nexttile 함수를 호출하여 axes 객체 ax1ax2를 만듭니다. 좌표축을 pcolor의 첫 번째 인수로 지정하여 두 개의 의사색상 플롯을 만듭니다.

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
C1 = rand(20,10);
pcolor(ax1,C1)

% Right plot
ax2 = nexttile;
C2 = rand(50,10);
pcolor(ax2,C2)

Figure contains 2 axes objects. Axes object 1 contains an object of type surface. Axes object 2 contains an object of type surface.

입력 인수

모두 축소

컬러맵에 대한 인덱스를 포함하는 색상 행렬. C의 값은 컬러맵 배열의 색을 각 면을 둘러싸는 꼭짓점으로 매핑합니다. 면의 색은 4개의 꼭짓점 중 하나의 색에 의해 결정됩니다. 4개의 꼭짓점 중에서 XY에 가장 먼저 나타나는 꼭짓점이 면의 색을 결정합니다. XY를 지정하지 않으면 MATLAB은 X=1:nY=1:m을 사용합니다. 여기서 [m,n] = size(C)입니다. 꼭짓점 색과 면 색 사이에 이러한 관계가 있기 때문에 C의 마지막 행과 열에 있는 어떠한 값도 플롯에서 표현되지 않습니다.

2-by-2 pseudocolor plot with four faces and a different colored dot at each of the nine vertices. The color of each face is determined by the color of its lower-left vertex. The five vertices along the top and right edges of the plot do not determine the color of any face.

참고

면의 첫 번째 꼭짓점은 대응하는 행렬의 왼쪽 상단 코너에서 가장 가까운 꼭짓점입니다. 그러나 y축은 아래에서 위로 늘어나므로 플롯에 표시되는 첫 번째 꼭짓점은 일반적으로 면의 왼쪽 하단 코너에 있는 꼭짓점입니다. 따라서 정확히 원하는 효과를 얻으려면 y축의 방향이나 행렬 C의 방향을 변경해야 할 수 있습니다.

꼭짓점과 면의 색 관계를 보여주는 간단한 예제는 4개의 색으로 4개의 면 플로팅하기 항목을 참조하십시오.

C의 값은 컬러맵의 전체 범위로 스케일링됩니다. C의 가장 작은 값은 컬러맵 배열의 첫 번째 행에 매핑됩니다. C의 가장 큰 값은 컬러맵 배열의 마지막 행에 매핑됩니다. C의 중간값은 컬러맵 배열의 중간 행에 선형적으로 매핑됩니다. clim 함수를 사용하여 이 매핑을 조정할 수 있습니다.

R2022a 이전: clim과 동일한 구문과 인수를 가지는 caxis 함수를 사용하십시오.

C의 값은 Surface 객체의 CData 속성에 저장됩니다.

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

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

꼭짓점으로 구성된 사각 그리드를 만들려면 X를 다음 중 하나로 지정하십시오.

  • 증가하거나 감소하는 값을 포함하는 벡터

  • 한 차원에서는 값이 증가하거나 감소하고 다른 한 차원에서는 일정한 값을 가지는 행렬 값이 변하는 차원은 Y의 값이 변하는 차원과 반대로 설정하십시오. meshgrid 함수를 사용하여 XY 행렬을 만들 수 있습니다.

파라미터 그리드를 만들려면 사각 그리드를 만들고 이 그리드를 수학 함수에 사용하십시오.

예: X = 1:10

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

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

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

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

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

꼭짓점으로 구성된 사각 그리드를 만들려면 Y를 다음 중 하나로 지정하십시오.

  • 증가하거나 감소하는 값을 포함하는 벡터

  • 한 차원에서는 값이 증가하거나 감소하고 다른 한 차원에서는 일정한 값을 가지는 행렬 값이 변하는 차원은 X의 값이 변하는 차원과 반대로 설정하십시오. meshgrid 함수를 사용하여 XY 행렬을 만들 수 있습니다.

파라미터 그리드를 만들려면 사각 그리드를 만들고 이 그리드를 수학 함수에 사용하십시오.

예: Y = 1:10

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

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

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

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

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

알고리즘

색이 적용된 셀로 구성된 사각 배열을 표시하려면 pcolor, imageimagesc 함수를 사용하십시오. 색상 행렬 C와 색이 적용된 셀 사이의 관계는 각각의 경우마다 달라집니다.

  • pcolor(C)C의 값을 컬러맵의 전체 범위로 스케일링하여 꼭짓점 색을 정의합니다. C의 크기가 꼭짓점 개수를 결정합니다. C의 값은 현재 컬러맵의 색을 각 셀을 둘러싸는 꼭짓점으로 매핑합니다.

  • image(C)C의 값을 컬러맵에 바로 매핑하여 셀 색을 정의합니다. C의 크기가 셀 개수를 결정합니다.

  • imagesc(C)C의 값을 컬러맵의 전체 범위로 스케일링하여 셀 색을 정의합니다. C의 크기가 셀 개수를 결정합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨