Main Content

hist3

이변량 히스토그램 플롯

설명

예제

hist3(X)는 균일한 간격으로 배치된 10×10 크기의 Bin을 사용하여 X(:,1)X(:,2)에 대한 이변량 히스토그램 플롯을 생성합니다. hist3 함수는 3차원 직사각형 막대로 Bin을 표시하며, 각 막대의 높이는 Bin에 포함된 요소의 개수를 나타냅니다.

예제

hist3(X,'Nbins',nbins)는 히스토그램 내 각 차원의 Bin 개수를 지정합니다. 이 구문은 hist3(X,nbins)와 동일합니다.

예제

hist3(X,'Ctrs',ctrs)는 히스토그램 내 각 차원의 Bin의 중심값을 지정합니다. 이 구문은 hist3(X,ctrs)와 동일합니다.

hist3(X,'Edges',edges)는 각 차원의 Bin의 경계값을 지정합니다.

예제

hist3(___,Name,Value)는 위에 열거된 구문의 입력 인수와 함께 하나 이상의 이름-값 쌍의 인수를 사용하여 그래픽 속성을 지정합니다. 예를 들어, 'FaceAlpha',0.5는 반투명 히스토그램을 생성합니다. 속성 목록은 Surface 속성를 참조하십시오.

hist3(ax,___)는 현재 좌표축(gca) 대신 ax로 지정된 좌표축에 플로팅합니다. 옵션 ax는 위에 열거된 구문의 모든 입력 인수 조합 앞에 올 수 있습니다.

예제

N = hist3(___)은 각 Bin에 속하는 X의 요소의 개수를 반환합니다. 이 구문은 히스토그램을 생성하지 않습니다.

[N,c] = hist3(___)은 Bin 중심값도 반환합니다. 이 구문은 히스토그램을 생성하지 않습니다.

예제

모두 축소

표본 데이터를 불러옵니다.

load carbig

디폴트 설정으로 이변량 히스토그램을 생성합니다.

X = [MPG,Weight];
hist3(X)
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

Bin 중심값으로 지정된 Bin에 대한 이변량 히스토그램을 생성하고 각 Bin에 속하는 요소의 개수를 계산합니다.

표본 데이터를 불러옵니다.

load carbig

이변량 히스토그램을 생성합니다. 요소를 2개 가진 셀형 배열을 사용하여 히스토그램의 Bin 중심값을 지정합니다.

X = [MPG,Weight];
hist3(X,'Ctrs',{0:10:50 2000:500:5000})
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

각 Bin에 속하는 요소의 개수를 계산합니다.

N = hist3(X,'Ctrs',{0:10:50 2000:500:5000})
N = 6×7

     0     0     0     0     0     0     0
     0     0     2     3    16    26     6
     6    34    50    49    27    10     0
    70    49    11     3     0     0     0
    29     4     2     0     0     0     0
     1     0     0     0     0     0     0

표본 데이터를 불러옵니다.

load carbig

이변량 히스토그램을 생성합니다. 그래픽 속성을 지정하여 관측값의 도수를 나타내는 높이를 기준으로 히스토그램 막대를 채색합니다.

X = [MPG,Weight];
hist3(X,'CDataMode','auto','FaceColor','interp')
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

표본 데이터를 불러옵니다.

load carbig

이변량 타일 형식 히스토그램을 생성합니다. 그래픽 속성을 지정하여 관측값의 도수를 기준으로 히스토그램 막대의 위쪽 표면을 채색합니다. 2차원으로 보기를 변경합니다.

X = [MPG,Weight];
hist3(X,'CdataMode','auto')
xlabel('MPG')
ylabel('Weight')
colorbar
view(2)

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

히스토그램 surface 객체의 핸들을 사용하여 이변량 히스토그램을 생성하고 이에 대한 그래픽 속성을 조정합니다.

표본 데이터를 불러옵니다.

load carbig

각 차원에 7개 Bin이 있는 이변량 히스토그램을 생성합니다.

X = [MPG,Weight];
hist3(X,'Nbins',[7 7])
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

hist3 함수는 곡면 플롯 유형인 이변량 히스토그램을 생성합니다. surface 객체의 핸들을 찾고 면 투명도를 조정합니다.

s = findobj(gca,'Type','Surface');
s.FaceAlpha = 0.65;

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

이변량 히스토그램을 생성하고 명암에 대한 2차원 투영 보기를 히스토그램에 추가합니다.

seamount 데이터 세트를 불러옵니다(seamount(해산)는 수중에 잠겨 있는 산을 말함). 이 데이터 세트는 경도(x) 및 위도(y) 위치 집합과 이 좌표에서 측정된 대응되는 seamount 고도(z)로 구성됩니다. 이 예제에서는 xy를 사용하여 이변량 히스토그램을 그립니다.

load seamount

이변량 히스토그램을 그립니다.

hist3([x,y])
xlabel('Longitude')
ylabel('Latitude')
hold on

Figure contains an axes object. The axes object with xlabel Longitude, ylabel Latitude contains an object of type surface.

각 Bin에 속하는 요소의 개수를 계산합니다.

N = hist3([x,y]);

pcolor를 사용하여 명암에 대한 2차원 투영 보기를 그릴 그리드를 생성합니다.

N_pcolor = N';
N_pcolor(size(N_pcolor,1)+1,size(N_pcolor,2)+1) = 0;
xl = linspace(min(x),max(x),size(N_pcolor,2)); % Columns of N_pcolor
yl = linspace(min(y),max(y),size(N_pcolor,1)); % Rows of N_pcolor

pcolor를 사용하여 명암 맵을 그립니다. 히스토그램과 명암 맵을 함께 볼 수 있도록 명암 맵의 z-레벨을 설정합니다.

h = pcolor(xl,yl,N_pcolor);
colormap('hot') % Change color scheme 
colorbar % Display colorbar
h.ZData = -max(N_pcolor(:))*ones(size(N_pcolor));
ax = gca;
ax.ZTick(ax.ZTick < 0) = [];
title('Seamount Location Histogram and Intensity Map');

Figure contains an axes object. The axes object with title Seamount Location Histogram and Intensity Map, xlabel Longitude, ylabel Latitude contains 2 objects of type surface.

입력 인수

모두 축소

각 Bin에 분배할 데이터로, m×2 크기의 숫자형 행렬로 지정됩니다. 여기서 m은 데이터 점의 개수입니다. X(:,1)X(:,2)의 대응하는 요소는 2차원 데이터 점에 대한 x, y 좌표를 지정합니다.

hist3은 모든 NaN 값을 무시합니다. 마찬가지로, hist3edges 입력 인수를 사용하여 Inf 또는 –Inf를 Bin 경계값으로 명시적으로 지정하지 않는 한 Inf 값과 –Inf 값도 무시합니다.

데이터형: single | double

각 차원의 Bin 개수로, 양의 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. nbins(1)은 첫 번째 차원의 Bin 개수를 지정하고, nbins(2)는 두 번째 차원의 Bin 개수를 지정합니다.

예: [10 20]

데이터형: single | double

각 차원의 Bin 중심값으로, 단조 비감소 값의 숫자형 벡터로 구성된 요소를 2개 가진 셀형 배열로 지정됩니다. ctrs{1}ctrs{2}는 각각 첫 번째 차원과 두 번째 차원에 속한 Bin 중심값의 위치입니다.

hist3은 그리드 범위 밖에 있는 X의 행을 그리드의 바깥쪽 경계에 있는 Bin에 할당합니다.

예: {0:10:100 0:50:500}

데이터형: cell

각 차원의 Bin 경계값으로, 단조 비감소 값의 숫자형 벡터로 구성된 요소를 2개 가진 셀형 배열로 지정됩니다. edges{1}edges{2}는 각각 첫 번째 차원과 두 번째 차원에 속한 Bin 경계값의 위치입니다.

edges{1}(i) ≤ X(k,1) < edges{1}(i+1)edges{2}(j) ≤ X(k,2) < edges{2}(j+1)인 경우 값 X(k,:)(i,j)번째 Bin에 있습니다.

각 차원의 마지막 Bin은 마지막(바깥쪽) 경계값도 포함합니다. 예를 들어, edges{1}(I–1) ≤ X(k,1) ≤ edges{1}(I)edges{2}(j) ≤ X(k,2) < edges{2}(j+1)인 경우 X(k,:)(I,j)번째 Bin에 있습니다. 여기서 Iedges{1}의 길이입니다. 또한, edges{1}(i) ≤ X(k,1) < edges{1}(i+1)edges{2}(J–1) ≤ X(k,2) ≤ edges{2}(J)인 경우 X(k,:)(i,J)번째 Bin에 있습니다. 여기서 Jedges{2}의 길이입니다.

hist3은 그리드 범위 밖에 있는 X의 행은 세지 않습니다. NaN이 아닌 모든 값을 포함시키려면 edges–InfInf를 사용하십시오.

예: {0:10:100 0:50:500}

데이터형: cell

대상 좌표축으로, axes 객체로 지정됩니다. Axes 객체를 지정하지 않으면 hist3 함수는 현재 좌표축을 사용합니다(gca). 자세한 내용은 Axes 속성을 참조하십시오.

이름-값 인수

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

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

예: hist3(X,'FaceColor','interp','CDataMode','auto')는 막대의 높이에 따라 히스토그램 막대를 채색합니다.

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

CData(꼭짓점 색) 선택 모드로, 'CDataMode'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'manual'CData 속성에 수동으로 지정된 값을 사용합니다. CData의 디폴트 값은 RGB 3색 값 [0.75 0.85 0.95]에 해당하는 옅은 강철색(light steel blue)입니다.

  • 'auto'ZData 값을 사용하여 색을 설정합니다. ZData는 각 막대의 8개 코너에 해당하는 z좌표 데이터를 포함합니다.

예: 'CDataMode','auto'

모서리 선 색으로, 'EdgeColor'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'none' — 모서리를 그리지 않습니다.

  • 'flat'CData 속성의 값에 따라 각 모서리마다 다른 색을 사용합니다.

  • 'interp'CData 속성의 값에 따라 각 모서리에 보간 채색을 사용합니다.

  • RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 이름 — 모든 모서리에 지정된 색을 사용합니다. 이 값은 CData 속성의 색 값을 사용하지 않습니다.

디폴트 색 [0 0 0]은 검은색 모서리에 해당합니다.

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

다음은 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

예: 'EdgeColor','blue'

면 투명도로, 'FaceAlpha'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

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

  • 'flat'AlphaData 속성의 값에 따라 각 면마다 다른 투명도를 사용합니다. 첫 번째 꼭짓점의 투명도 값이 면 전체의 투명도를 결정합니다. 이 값은 AlphaData 속성을 지정하고 FaceColor 속성을 'flat'으로 설정하는 경우에만 적용됩니다.

  • 'interp'AlphaData 속성의 값에 따라 각 면에 보간 투명도를 사용합니다. 꼭짓점의 값을 보간하기 때문에 각 면의 투명도 값은 달라집니다. 이 값은 AlphaData 속성을 지정하고 FaceColor 속성을 'interp'로 설정하는 경우에만 적용됩니다.

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

예: 'FaceAlpha',0.5

면 색으로, 'FaceColor'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'flat'CData 속성의 값에 따라 각 면마다 다른 색을 사용합니다.

  • 'interp'CData 속성의 값에 따라 각 면에 보간 채색을 사용합니다.

  • 'none' — 면을 그리지 않습니다.

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

  • 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"

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

다음은 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

예: 'FaceColor','interp'

선 스타일로, 'LineStyle'과 함께 다음 표에 나와 있는 옵션 중 하나가 쉼표로 구분되어 지정됩니다.

선 스타일설명결과로 생성되는 선
"-"실선

Sample of solid line

"--"파선

Sample of dashed line

":"점선

Sample of dotted line

"-."일점 쇄선

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

"none"선 없음선 없음

예: 'LineStyle',':'

선 너비로, 'LineWidth'와 함께 양의 값(단위: 포인트)이 쉼표로 구분되어 지정됩니다.

예: 'LineWidth',0.75

데이터형: single | double

출력 인수

모두 축소

각 Bin에 속하는 X의 요소 개수로, 숫자형 행렬로 반환됩니다.

각 차원의 Bin 중심값으로, 숫자형 벡터로 구성된 요소를 2개 가진 셀형 배열로 반환됩니다. c{1}c{2}는 각각 첫 번째 차원과 두 번째 차원에 포함된 Bin 중심값의 위치입니다.

hist3 함수는 곡면 플롯 유형인 이변량 히스토그램을 생성합니다. 하나 이상의 이름-값 쌍의 인수를 사용하여 surface 속성을 지정할 수 있습니다. 또한, 히스토그램을 생성한 후에는 surface 속성값을 변경하여 히스토그램의 모양을 변경할 수 있습니다. s = findobj(gca,'Type','Surface')를 사용하여 surface 객체의 핸들을 구한 다음 s를 사용하여 surface 속성을 수정합니다. 예제는 그래픽 속성 조정하기 항목을 참조하십시오. 속성 목록은 Surface 속성를 참조하십시오.

대체 기능

histogram2 함수를 사용하면 Histogram2 객체를 사용하여 이변량 히스토그램을 생성할 수 있습니다. histogram2의 이름-값 쌍의 인수를 사용하여 정규화를 사용하고(Normalization), 각 차원의 Bin 너비를 조정하고(BinWidth), 히스토그램을 3차원 막대 대신 바둑판식으로 배열된 직사각형으로 표시할 수 있습니다(DisplayStyle).

버전 내역

R2006a 이전에 개발됨