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

histogram

히스토그램 플롯

설명

히스토그램은 데이터를 Bin으로 그룹화하는 숫자형 데이터의 막대 플롯 유형입니다. Histogram 객체를 생성한 후 해당 속성값을 변경하여 히스토그램의 여러 특성을 수정할 수 있습니다. 이는 Bin의 속성을 빠르게 수정하거나 화면표시를 빠르게 변경하려는 경우 특히 유용합니다.

생성

설명

예제

histogram(X)X의 히스토그램 플롯을 생성합니다. histogram 함수는 자동 비닝(Binning) 알고리즘을 사용합니다. 이 알고리즘은 X에 있는 요소의 범위를 포괄하고 분포의 기본 형태를 표시하도록 선택된, 균일한 너비의 Bin을 반환합니다. histogram은 Bin을 사각형으로 표시하고, 각 사각형의 높이는 Bin의 요소 개수를 나타냅니다.

예제

histogram(X,nbins)는 스칼라 nbins로 지정된 Bin의 개수를 사용합니다.

예제

histogram(X,edges)X를 벡터 edges로 지정된 Bin 경계값을 갖는 Bin으로 분류합니다. 각 Bin은 하한 경계값을 포함하며, 양측 경계값을 포함하는 마지막 Bin을 제외하고는 상한 경계값을 포함하지 않습니다.

histogram('BinEdges',edges,'BinCounts',counts)는 Bin 경계값과, 이 경계값에 연결된 Bin 도수를 수동으로 지정합니다. histogram은 지정된 Bin 도수를 플로팅하고 데이터 비닝(Binning)은 수행하지 않습니다.

예제

histogram(C)(여기서 C는 categorical형 배열임)는 C의 각 범주에 대해 막대로 히스토그램을 플로팅합니다.

histogram(C,Categories)Categories로 지정된 범주의 서브셋만 플로팅합니다.

histogram('Categories',Categories,'BinCounts',counts)는 범주와, 이 범주에 연결된 Bin 도수를 수동으로 지정합니다. histogram은 지정된 Bin 도수를 플로팅하고 데이터 비닝(Binning)은 수행하지 않습니다.

예제

histogram(___,Name,Value)는 위에 열거된 구문에 Name,Value 쌍 인수를 하나 이상 추가 옵션으로 지정합니다. 예를 들어, 'BinWidth'와 스칼라를 지정하여 Bin의 너비를 조정하거나, 'Normalization'을 유효한 옵션('count', 'probability', 'countdensity', 'pdf', 'cumcount', 'cdf' 중 하나)으로 지정하여 다른 유형의 정규화를 사용할 수 있습니다. 속성 목록은 Histogram 속성을 참조하십시오.

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

예제

h = histogram(___)Histogram 객체를 반환합니다. 이 함수를 사용하면 histogram의 속성을 검사하고 조정할 수 있습니다. 속성 목록은 Histogram 속성을 참조하십시오.

입력 인수

모두 확장

Bin 사이에 분포시킬 데이터로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. X가 벡터가 아닌 경우, histogram은 이를 단일 열 벡터 X(:)로 처리하고 단일 히스토그램을 플로팅합니다.

histogram은 모든 NaN 값과 NaT 값을 무시합니다. 마찬가지로, Bin 경계값이 Inf 또는 -Inf를 명시적으로 Bin 경계값으로 지정하지 않는 한 histogramInf 값과 -Inf 값을 무시합니다. NaN 값, NaT 값, Inf 값, -Inf 값은 일반적으로 플로팅되지 않지만, 'probability'와 같이 데이터 요소의 총 개수를 포함하는 정규화 계산에는 포함됩니다.

참고

Xflintmax보다 큰 int64형 또는 uint64형의 정수가 포함된 경우 히스토그램 Bin 경계값을 명시적으로 지정하는 것이 좋습니다. histogram은 배정밀도를 사용하여 입력 데이터를 자동으로 비닝하며, 배정밀도는 flintmax보다 큰 숫자에 대해 정수 정밀도가 없습니다.

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

categorical형 데이터로, categorical형 배열로 지정됩니다. histogram은 정의되지 않은 categorical형 값을 플로팅하지 않습니다. 단, 'probability'와 같이 데이터 요소의 총 개수를 포함하는 정규화 계산에는 정의되지 않은 categorical형 값도 포함됩니다.

데이터형: categorical

Bin 개수로, 양의 정수로 지정됩니다. nbins를 지정하지 않으면 histogramX의 값을 기반으로 하여 사용할 Bin의 개수를 자동으로 계산합니다.

예: histogram(X,15)는 15개의 Bin을 가지는 히스토그램을 생성합니다.

Bin 경계값으로, 벡터로 지정됩니다. edges(1)은 첫 번째 Bin의 하한 경계값이고 edges(end)는 마지막 Bin의 상한 경계값입니다.

edges(k)X(i) < edges(k+1)인 경우 값 X(i)k번째 Bin에 있습니다. 마지막 Bin은 상한 경계값을 포함하므로, edges(end-1)X(i)edges(end)인 경우 X(i)를 포함합니다.

datetime형 데이터와 duration형 데이터의 경우, edges는 단조 증가(Monotonically Increasing)하는 순서의 datetime형 벡터 또는 duration형 벡터여야 합니다.

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

참고

이 옵션은 범주 히스토그램에만 적용됩니다.

히스토그램에 포함되는 범주로, 문자형 벡터로 구성된 셀형 배열 또는 categorical형 벡터로 지정됩니다.

  • 입력 categorical형 배열 C를 지정할 경우 histogram은 기본적으로 C의 각 범주에 대해 막대를 플로팅합니다. 이 경우 범주의 고유한 서브셋을 대신 지정하려면 Categories를 사용하십시오.

  • Bin 도수를 지정하면 Categories가 히스토그램에 대해 연결된 범주 이름을 지정합니다.

예: h = histogram(C,{'Large','Small'})은 범주 'Large''Small'의 categorical형 데이터만 플로팅합니다.

예: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3])은 연결된 Bin 도수가 있는 세 개의 범주를 가진 히스토그램을 플로팅합니다.

예: h.Categories는 히스토그램 객체 h에 있는 범주를 쿼리합니다.

데이터형: cell | categorical

Bin 도수로, 벡터로 지정됩니다. Bin 도수 계산이 개별적으로 수행되고 histogram이 데이터 비닝(Binning)을 수행하지 않도록 하려면 이 입력값을 사용하여 Bin 도수를 histogram에 전달하십시오.

counts의 길이는 Bin의 개수와 같아야 합니다.

  • 숫자형 히스토그램의 경우, Bin 개수는 length(edges)-1입니다.

  • 범주 히스토그램의 경우, Bin 개수는 범주 개수와 동일합니다.

예: histogram('BinEdges',-2:2,'BinCounts',[5 8 15 9])

예: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3])

대상 좌표축으로, Axes 객체 또는 PolarAxes 객체로 지정됩니다. 좌표축을 지정하지 않을 경우 현재 좌표축이 카테시안 좌표축(Cartesian Axes)이면 histogram 함수는 현재 좌표축(gca)을 사용합니다. 극좌표 좌표축에 플로팅하려면 PolarAxes 객체를 첫 번째 입력 인수로 지정하거나 polarhistogram 함수를 사용하십시오.

이름-값 쌍의 인수

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

예: histogram(X,'BinWidth',5)

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

참고

이 옵션은 categorical형 데이터의 히스토그램에만 적용됩니다.

범주 막대의 상대적인 너비로, 범위 [0,1] 사이의 스칼라 값으로 지정됩니다. 이 속성을 사용하여 히스토그램 내에서 범주 막대 간 구분 방법을 제어할 수 있습니다. 디폴트 값인 0.9는 막대 너비가 이전 막대에서 다음 막대까지 거리의 90%이며 그 거리의 5% 간격이 막대 양쪽에 존재함을 의미합니다.

이 속성을 1로 설정하면 인접해 있는 막대가 서로 닿습니다.

예: 0.5

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

Bin 제한으로, 요소를 2개 가진 벡터 [bmin,bmax]로 지정됩니다. 이 옵션은 입력 배열 X에서 bminbmax(구간의 끝점 포함) 사이에 있는 값을 사용하여 히스토그램을 플로팅합니다. 즉, X(X>=bmin & X<=bmax)입니다.

categorical형 데이터의 히스토그램에는 이 옵션이 적용되지 않습니다.

예: histogram(X,'BinLimits',[1,10])110(구간의 끝점 포함) 사이에 있는 X의 값만 사용하여 히스토그램을 플로팅합니다.

Bin 제한의 선택 모드로, 'auto' 또는 'manual'로 지정됩니다. 디폴트 값은 'auto'입니다. 이 경우 Bin 제한이 데이터에 맞게 자동으로 조정됩니다.

BinLimitsBinEdges를 명시적으로 지정하면 BinLimitsMode가 자동으로 'manual'로 설정됩니다. 이 경우, Bin 제한을 데이터에 맞게 다시 스케일링하려면 BinLimitsMode'auto'로 지정하십시오.

categorical형 데이터의 히스토그램에는 이 옵션이 적용되지 않습니다.

비닝 알고리즘으로, 다음 표에 있는 값 중 하나로 지정됩니다.

설명

'auto'

디폴트 'auto' 알고리즘은 데이터 범위를 포괄하고 기본 분포의 형태를 표시할 수 있는 Bin 너비를 선택합니다.

'scott'

스콧의 법칙(Scott's Rule)은 데이터가 정규분포에 가까운 경우 가장 적합합니다. 이 법칙은 대부분의 다른 분포에도 적합합니다. 이 법칙은 Bin 너비로 3.5*std(X(:))*numel(X)^(-1/3)을 사용합니다.

'fd'

프리드만-다이아코니스 법칙(Freedman-Diaconis Rule)은 데이터의 이상값에 덜 민감하며, 두꺼운 꼬리 분포의 데이터에 더 적합할 수 있습니다. 이 법칙은 Bin 너비로 2*IQR(X(:))*numel(X)^(-1/3)을 사용합니다. 여기서 IQRX의 사분위 범위입니다.

'integers'

정수 규칙은 각 정수에 대해 Bin을 생성하므로 정수 데이터에 유용합니다. 이 규칙은 Bin 너비로 1을 사용하며, 정수 사이의 중간 위치에 Bin 경계값을 배치합니다. 잘못하여 너무 많은 Bin을 생성하지 않으려면 이 규칙을 사용하여 65536개의 Bin 제한(216)을 생성할 수 있습니다. 데이터 범위가 65536보다 큰 경우 정수 규칙은 대신 더 넓은 Bin을 사용합니다.

참고

'integers'는 datetime형 데이터나 duration형 데이터를 지원하지 않습니다.

'sturges'

스터지스의 법칙(Sturges' Rule)은 간단하기 때문에 많이 사용됩니다. 이 법칙은 Bin 개수를 ceil(1 + log2(numel(X)))개로 선택합니다.

'sqrt'

제곱근 규칙은 타 소프트웨어 패키지에서 널리 사용됩니다. 이 법칙은 Bin 개수를 ceil(sqrt(numel(X)))개로 선택합니다.

histogram이 항상 이러한 정확한 수식을 사용해 Bin 개수를 선택하지는 않습니다. Bin 경계값이 '적절한' 숫자가 되도록 Bin 개수가 약간 조정되는 경우도 있습니다.

datetime형 데이터의 경우 bin 메서드는 다음 시간 단위 중 하나일 수 있습니다.

'second''month'
'minute''quarter'
'hour''year'
'day''decade'
'week''century'

duration형 데이터의 경우 bin 메서드는 다음 시간 단위 중 하나일 수 있습니다.

'second''day'
'minute''year'
'hour' 

datetime형 또는 duration형 데이터로 BinMethod를 지정하면 histogram은 최대 65,536개의 Bin(즉, 216)을 사용할 수 있습니다. 지정된 Bin 기간에 더 많은 Bin이 필요할 경우 histogram은 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.

categorical형 데이터의 히스토그램에는 이 옵션이 적용되지 않습니다.

참고

BinLimits, NumBins, BinEdges, BinWidth 속성 중 하나를 설정하면 BinMethod 속성이 'manual'로 설정됩니다.

예: histogram(X,'BinMethod','integers')는 Bin이 정수의 중앙에 있는 히스토그램을 생성합니다.

Bin 너비로, 스칼라로 지정됩니다. BinWidth를 지정할 경우 histogram은 최대 65,536개의 Bin(즉, 216)을 사용할 수 있습니다. 지정된 Bin 너비에 더 많은 Bin이 필요할 경우 histogram은 최대 Bin 개수에 해당하는 더 큰 Bin 너비를 사용합니다.

datetime형 데이터와 duration형 데이터의 경우, 'BinWidth'의 값은 duration형 스칼라 또는 calendarDuration형 스칼라일 수 있습니다.

categorical형 데이터의 히스토그램에는 이 옵션이 적용되지 않습니다.

예: histogram(X,'BinWidth',5)는 너비가 5인 Bin을 사용합니다.

범주 표시 순서로, 'ascend', 'descend' 또는 'data'로 지정됩니다. 'ascend' 또는 'descend'로 지정할 경우 히스토그램이 증가하거나 감소하는 막대 높이로 표시됩니다. 디폴트 'data' 값은 입력 데이터 C의 범주 순서를 사용합니다.

이 옵션은 Categorical형 데이터에만 적용됩니다.

히스토그램 디스플레이 스타일로, 'bar' 또는 'stairs'로 지정됩니다. 'stairs'를 지정하면 내부를 채우지 않고 히스토그램의 윤곽선을 표시하는 계단 플롯이 표시됩니다.

디폴트 값 'bar'는 히스토그램 막대 플롯을 표시합니다.

예: histogram(X,'DisplayStyle','stairs')는 히스토그램의 윤곽선을 플로팅합니다.

히스토그램 막대 모서리의 투명도로, 01 사이의 스칼라 값(구간의 끝점 포함)으로 지정됩니다. 값이 1이면 완전히 불투명함을 의미하고 0이면 완전히 투명함(보이지 않음)을 의미합니다.

예: histogram(X,'EdgeAlpha',0.5)는 막대 모서리가 반투명인 히스토그램 플롯을 생성합니다.

히스토그램 모서리 색으로, 다음 값 중 하나로 지정됩니다.

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

  • 'auto' — 각 모서리의 색이 자동으로 선택됩니다.

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

    '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'

예: histogram(X,'EdgeColor','r')은 막대 모서리가 빨간색인 히스토그램 플롯을 생성합니다.

히스토그램 막대의 투명도로, 01(구간의 끝점 포함) 사이의 스칼라 값으로 지정됩니다. histogram은 히스토그램의 모든 막대에 동일한 투명도를 사용합니다. 값이 1이면 완전히 불투명함을 의미하고 0이면 완전히 투명함(보이지 않음)을 의미합니다.

예: histogram(X,'FaceAlpha',1)은 막대가 완전히 불투명한 히스토그램 플롯을 생성합니다.

히스토그램 막대 색으로, 다음 값 중 하나로 지정됩니다.

  • 'none' — 막대가 채워지지 않습니다.

  • 'auto' — 히스토그램 막대 색이 자동으로 선택됩니다(디폴트 값).

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

    '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'

DisplayStyle'stairs'로 지정할 경우 histogramFaceColor 속성을 사용하지 않습니다.

예: histogram(X,'FaceColor','g')는 막대가 녹색인 히스토그램 플롯을 생성합니다.

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

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

'--'파선

':'점선

'-.'일점 쇄선

'none'선 없음선 없음

막대 윤곽선의 너비로, 양의 값으로 지정됩니다(단위: 포인트). 1포인트는 1/72인치와 같습니다.

예: 1.5

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

정규화 유형으로, 다음 표에 있는 값 중 하나로 지정됩니다. i는 Bin이며, i에 대해 다음과 같습니다.

  • vi는 Bin의 값입니다.

  • ci는 Bin의 요소 개수입니다.

  • wi는 Bin의 너비입니다.

  • N은 입력 데이터의 요소 개수입니다. 데이터에 NaN, NaT 또는 <undefined> 값이 포함되어 있거나 데이터의 일부가 Bin 제한을 벗어나는 경우 이 값은 비닝(Binning)된 데이터보다 클 수 있습니다.

Bin 값참고
'count'(디폴트 값)

vi=ci

  • 관측값의 도수 또는 빈도입니다.

  • 모든 Bin 값의 합은 numel(X)보다 작거나 같습니다. 일부 입력 데이터가 Bin에 포함되지 않는 경우에만 합이 numel(X)보다 작습니다.

  • categorical형 데이터의 경우 모든 Bin 값의 합은 numel(X) 또는 sum(ismember(X(:),Categories))보다 작거나 같습니다.

'countdensity'

vi=ciwi

  • Bin의 너비를 기준으로 스케일링한 도수 또는 빈도입니다.

  • 각 막대의 면적(높이 * 너비)은 Bin의 관측값 개수입니다. 모든 막대의 면적의 합은 numel(X)보다 작거나 같습니다.

  • 범주 히스토그램의 경우, 이 유형은 'count'와 같습니다.

참고

'countdensity'는 datetime형 데이터나 duration형 데이터를 지원하지 않습니다.

'cumcount'

vi=j=1icj

  • 누적 도수(Cumulative Count). 각 Bin의 값은 해당 Bin과 모든 이전 Bin의 누적 관측값 개수를 나타냅니다.

  • 마지막 막대의 높이는 numel(X)보다 작거나 같습니다.

  • 범주 히스토그램의 경우, 마지막 막대의 높이는 numel(X) 또는 sum(ismember(X(:),Categories))보다 작거나 같습니다.

'probability'

vi=ciN

  • 상대 확률.

  • 모든 막대의 높이의 합은 1보다 작거나 같습니다.

'pdf'

vi=ciNwi

  • 확률 밀도 함수 추정값입니다.

  • 각 막대의 면적은 관측값의 상대 수입니다. 모든 막대의 면적의 합은 1보다 작거나 같습니다.

  • 범주 히스토그램의 경우, 이 유형은 'probability'와 같습니다.

참고

'pdf'는 datetime형 데이터나 duration형 데이터를 지원하지 않습니다.

'cdf'

vi=j=1icjN

  • 누적 밀도 함수 추정값입니다.

  • 각 막대의 높이는 Bin과 이전의 모든 Bin의 관측값의 누적 상대 수와 같습니다. 마지막 막대의 높이는 1보다 작거나 같습니다.

  • categorical형 데이터의 경우, 각 막대의 높이는 각 범주와 이전의 모든 범주의 관측값의 누적 상대 수와 같습니다.

예: histogram(X,'Normalization','pdf')X에 대한 확률 밀도 함수의 추정값을 플로팅합니다.

표시할 범주의 개수로, 스칼라로 지정됩니다. 'DisplayOrder' 옵션을 사용하여 히스토그램에 표시되는 범주의 순서를 변경할 수 있습니다.

이 옵션은 Categorical형 데이터에만 적용됩니다.

막대의 방향으로, 'vertical' 또는 'horizontal'로 지정됩니다.

예: histogram(X,'Orientation','horizontal')은 가로 막대로 히스토그램 플롯을 생성합니다.

표시되지 않는 범주에 속한 데이터의 요약을 표시할지 여부로, 'off' 또는 'on'으로 지정됩니다. 히스토그램에 이름이 'Others'인 막대를 추가로 표시하려면 이 옵션을 'on'으로 설정하십시오. 이 추가 막대는 히스토그램에 표시되는 범주에 속하지 않는 모든 요소의 개수를 나타냅니다.

'NumDisplayBins' 옵션과 'DisplayOrder' 옵션을 사용하여 히스토그램에 표시되는 범주의 개수와 순서를 변경할 수 있습니다.

이 옵션은 Categorical형 데이터에만 적용됩니다.

출력 인수

모두 확장

히스토그램으로, 객체로 반환됩니다. 자세한 내용은 histogram을 참조하십시오.

속성

Histogram 속성histogram의 모양과 동작

객체 함수

morebinsIncrease number of histogram bins
fewerbins히스토그램 Bin 개수 감소

예제

모두 축소

10,000개의 난수를 생성하고 히스토그램을 만듭니다. histogram 함수는 x의 값 범위를 포괄하고 기본 분포의 형태를 표시하는 데 적합한 Bin 개수를 자동으로 선택합니다.

x = randn(10000,1);
h = histogram(x)

h = 
  Histogram with properties:

             Data: [10000x1 double]
           Values: [1x37 double]
          NumBins: 37
         BinEdges: [1x38 double]
         BinWidth: 0.2000
        BinLimits: [-3.8000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

histogram 함수에 대한 출력 인수를 지정하면 이 함수는 histogram 객체를 반환합니다. 이 객체를 사용하여 Bin 개수나 Bin 너비 등의 histogram 속성을 검사할 수 있습니다.

히스토그램 Bin의 개수를 구합니다.

nbins = h.NumBins
nbins = 37

1,000개의 난수가 균일한 간격의 25개 Bin으로 분류된 히스토그램을 플로팅합니다.

x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins)

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x25 double]
          NumBins: 25
         BinEdges: [1x26 double]
         BinWidth: 0.2800
        BinLimits: [-3.4000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

Bin 도수를 구합니다.

counts = h.Values
counts = 1×25

     1     3     0     6    14    19    31    54    74    80    92   122   104   115    88    80    38    32    21     9     5     5     5     0     2

1,000개의 난수를 생성하고 히스토그램을 만듭니다.

X = randn(1000,1);
h = histogram(X)

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

morebins 함수를 사용하여 Bin 개수를 성기게 조정합니다.

Nbins = morebins(h);
Nbins = morebins(h)

Nbins = 29

Bin 개수를 명시적으로 설정하여 Bin을 정교하게 조정합니다.

h.NumBins = 31;

1,000개의 난수를 생성하고 히스토그램을 만듭니다. 히스토그램 경계에 넓은 Bin을 갖는 Bin 경계값으로 구성된 벡터를 지정하여 |x|<2를 충족하지 않는 이상값을 캡처합니다. 첫 번째 벡터 요소는 첫 번째 Bin의 하한 경계값이고, 마지막 벡터 요소는 마지막 Bin의 상한 경계값입니다.

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];
h = histogram(x,edges);

Normalization 속성을 'countdensity'로 지정하여 이상값을 포함하는 Bin을 평탄화합니다. 이제, 각 Bin의 (높이가 아닌) 면적은 해당 구간에서의 관측값 빈도를 나타냅니다.

h.Normalization = 'countdensity';

투표 항목을 나타내는 categorical형 벡터를 생성합니다. 벡터의 범주는 'yes', 'no', 'undecided'입니다.

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})
C = 1x27 categorical array
  Columns 1 through 9

     no      no      yes      yes      yes      no      no      no      no 

  Columns 10 through 16

     undecided      undecided      yes      no      no      no      yes 

  Columns 17 through 25

     no      yes      no      yes      no      no      no      yes      yes 

  Columns 26 through 27

     yes      yes 

상대적인 막대 너비로 0.5를 사용하여 투표에 대한 범주 히스토그램을 플로팅합니다.

h = histogram(C,'BarWidth',0.5)

h = 
  Histogram with properties:

              Data: [1x27 categorical]
            Values: [11 14 2]
    NumDisplayBins: 3
        Categories: {'yes'  'no'  'undecided'}
      DisplayOrder: 'data'
     Normalization: 'count'
      DisplayStyle: 'bar'
         FaceColor: 'auto'
         EdgeColor: [0 0 0]

  Show all properties

1,000개의 난수를 생성하고 'probability' 정규화를 사용하여 히스토그램을 만듭니다.

x = randn(1000,1);
h = histogram(x,'Normalization','probability')

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

모든 막대의 높이의 합을 계산합니다. 이 정규화를 사용할 경우 각 막대의 높이는 해당 Bin 구간 내에서 관측값을 선택할 확률과 동일하며, 모든 막대 높이의 합은 1입니다.

S = sum(h.Values)
S = 1

두 개의 난수 벡터를 생성하고 동일한 Figure에 각 벡터의 히스토그램을 플로팅합니다.

x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);

각 히스토그램의 샘플 크기와 Bin 너비가 다르기 때문에 이 두 히스토그램을 비교하기는 어렵습니다. 모든 막대 높이의 합이 1이 되도록 히스토그램을 정규화하고, 균일한 Bin 너비를 사용합니다.

h1.Normalization = 'probability';
h1.BinWidth = 0.25;
h2.Normalization = 'probability';
h2.BinWidth = 0.25;

1,000개의 난수를 생성하고 히스토그램을 만듭니다. histogram 객체를 반환하여, 전체 플롯을 다시 생성하지 않고 histogram의 속성을 조정합니다.

x = randn(1000,1);
h = histogram(x)

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [1x23 double]
          NumBins: 23
         BinEdges: [1x24 double]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

사용할 Bin 개수를 정확하게 지정합니다.

h.NumBins = 15;

벡터를 사용하여 Bin의 경계값을 지정합니다. 벡터의 첫 번째 값은 첫 번째 Bin의 하한 경계값입니다. 마지막 값은 마지막 Bin의 상한 경계값입니다.

h.BinEdges = [-3:3];

히스토그램 막대의 색을 변경합니다.

h.FaceColor = [0 0.5 0.5];
h.EdgeColor = 'r';

평균이 5이고 표준편차가 2인 5,000개의 정규분포된 난수를 생성합니다. Normalization'pdf'로 설정된 히스토그램을 플로팅하여 확률 밀도 함수의 추정값을 산출합니다.

x = 2*randn(5000,1) + 5;
histogram(x,'Normalization','pdf')

이 예제에서는 정규분포된 데이터의 기본 분포를 알 수 있습니다. 하지만 'pdf' 히스토그램 플롯을 사용하여 데이터의 기본 확률 분포를 알려진 확률 밀도 함수와 비교하여 확인할 수 있습니다.

평균이 μ이고, 표준편차가 σ이며, 분산이 σ2인 정규분포의 확률 밀도 함수는 다음과 같습니다.

f(x,μ,σ)=1σ2π exp[-(x-μ)22σ2].

평균이 5이고 표준편차가 2인 정규분포에 대한 확률 밀도 함수의 플롯을 겹쳐 놓습니다.

hold on
y = -5:0.1:15;
mu = 5;
sigma = 2;
f = exp(-(y-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi));
plot(y,f,'LineWidth',1.5)

savefig 함수를 사용하여 히스토그램 Figure를 저장합니다.

y = histogram(randn(10));
savefig('histogram.fig');

clear all
close all

openfig를 사용하여 히스토그램 Figure를 다시 MATLAB으로 불러옵니다. openfig는 또한 Figure에 대한 핸들 h를 반환합니다.

h = openfig('histogram.fig');

findobj 함수를 사용하여 Figure 핸들에서 올바른 객체 핸들을 찾습니다. 이로서 Figure를 생성하는 데 사용된 원래 히스토그램 객체를 계속 조작할 수 있습니다.

y = findobj(h, 'type', 'histogram')
y = 
  Histogram with properties:

             Data: [10x10 double]
           Values: [2 17 28 32 16 3 2]
          NumBins: 7
         BinEdges: [-3 -2 -1 0 1 2 3 4]
         BinWidth: 1
        BinLimits: [-3 4]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Show all properties

  • histogram을 사용하여 생성된 히스토그램 플롯의 경우 플롯 편집 모드에서 상황별 메뉴가 제공됩니다. 이 메뉴를 통해 Figure 창에서 대화형 방식으로 조작을 수행할 수 있습니다. 예를 들어, 상황별 메뉴를 사용하여 대화형 방식으로 Bin의 개수를 변경하거나, 여러 히스토그램을 배치하거나, 디스플레이 순서를 변경할 수 있습니다.

확장 기능

R2014b에 개발됨