Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

histogram

히스토그램 플롯

  • Histogram plot

설명

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

생성

설명

예제

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

예제

histogram(X,nbins)는 Bin의 개수를 지정합니다.

예제

histogram(X,edges)X를 벡터에 지정된 Bin 경계값을 갖는 Bin으로 분류합니다.

histogram('BinEdges',edges,'BinCounts',counts)는 지정된 Bin 도수를 플로팅하고 데이터 비닝(Binning)은 수행하지 않습니다.

예제

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

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

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

예제

histogram(___,Name,Value)는 위에 열거된 구문에서 하나 이상의 이름-값 인수를 사용하여 추가적인 파라미터를 지정합니다. 예를 들어, 다른 유형의 정규화를 사용하려면 Normalization을 지정합니다. 속성 목록은 Histogram 속성을 참조하십시오.

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

예제

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

입력 인수

모두 확장

Bin 사이에 분포시킬 데이터로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. 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 개수를 결정합니다.

nbinsBinMethod, BinWidth 또는 BinEdges와 함께 지정할 경우 histogram 함수는 마지막 파라미터만 적용합니다.

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

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

각 Bin은 앞쪽 경계값만 포함하고 뒤쪽 경계값은 포함하지 않으며, 예외적으로 마지막 Bin만 양쪽 경계값을 둘 다 포함합니다.

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

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

참고

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

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

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

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

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

예: histogram(C,"Y" + wildcardPattern)은 범주에서 이름이 문자 Y로 시작하는 데이터를 플로팅합니다.

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

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

데이터형: cell | categorical | string | pattern

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 함수를 사용하십시오.

이름-값 인수

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

예: histogram(X,BinWidth=5)

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

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

참고

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

Bin

모두 확장

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

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

  • BinWidthBinMethod, NumBins 또는 BinEdges와 함께 지정할 경우 histogram 함수는 마지막 파라미터만 적용합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

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

Bin 제한으로, 요소를 2개 가진 벡터 [bmin,bmax]로 지정됩니다. 첫 번째 요소는 첫 번째 Bin 경계값을 나타냅니다. 두 번째 요소는 마지막 Bin 경계값을 나타냅니다.

이 옵션은 Bin 제한 값(X>=bmin & X<=bmax) 내에 있는 데이터만 사용하여 계산합니다.

이 옵션은 categorical형 데이터에 적용되지 않습니다.

예: histogram(X,'BinLimits',[1,10])110(구간의 끝점 포함) 사이에 있는 X의 값만 비닝합니다.

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

  • BinLimits 또는 BinEdges를 지정하면 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)을 사용합니다.

'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 개수를 약간 조정합니다.

datetime형 데이터나 duration형 데이터의 경우, Bin 너비를 다음 시간 단위 중 하나로 지정하십시오.

설명데이터형
"second"

각 Bin은 1초입니다.

datetimeduration
"minute"

각 Bin은 1분입니다.

datetimeduration
"hour"

각 Bin은 1시간입니다.

datetimeduration
"day"

각 Bin은 달력상의 1일입니다. 이 값은 일광 절약 시간제 변동을 고려합니다.

datetimeduration
"week"각 Bin은 달력상의 1주일입니다.datetime
"month"각 Bin은 달력상의 1개월입니다.datetime
"quarter"각 Bin은 달력상의 1사분기입니다.datetime
"year"

각 Bin은 달력상의 1년입니다. 이 값은 윤일을 고려합니다.

datetimeduration
"decade"각 Bin은 10년(달력상의 10년)입니다.datetime
"century"각 Bin은 1세기(달력상의 100년)입니다.datetime

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

  • BinLimits, NumBins, BinEdges 또는 BinWidth를 지정하면 BinMethod'manual'로 설정됩니다.

  • BinMethodBinWidth, NumBins 또는 BinEdges와 함께 지정할 경우 histogram 함수는 마지막 파라미터만 적용합니다.

  • 이 옵션은 categorical형 데이터에 적용되지 않습니다.

예: histogram(X,'BinMethod','integers')는 Bin을 정수의 중앙에 맞춥니다.

범주

모두 확장

범주 표시 순서로, 'data', 'ascend' 또는 'descend'로 지정됩니다.

  • 'data' — 입력 데이터 C의 범주 순서를 사용합니다.

  • 'ascend' — 히스토그램을 증가하는 막대 높이로 표시합니다.

  • 'descend' — 히스토그램을 감소하는 막대 높이로 표시합니다.

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

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

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

표시되지 않는 범주에 속한 데이터의 요약을 표시할지 여부로, 'on' 또는 'off'나 숫자형 값 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. 값 'on'true와 동일하고 값 'off'false와 동일합니다. 따라서 이 속성의 값을 논리값으로 사용할 수 있습니다. 값은 matlab.lang.OnOffSwitchState 유형의 on/off 논리값으로 저장됩니다.

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

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

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

데이터

모두 확장

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

  • vi는 Bin의 값입니다.

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

  • wi는 Bin의 너비입니다.

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

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

vi=ci

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

  • Bin 값의 합은 최대 numel(X)이며, categorical형 데이터인 경우에는 최대 sum(ismember(X(:),Categories))입니다. 일부 입력 데이터가 Bin에 포함되지 않는 경우에만 합이 이보다 작습니다.

'probability'

vi=ciN

  • 상대 확률입니다.

  • 입력 데이터에 있는 요소의 총 개수에 대한 개별 Bin 요소의 개수는 최대 1입니다.

'percentage'

vi=100*ciN

  • 상대 백분율입니다.

  • 'percentage'는 categorical형 데이터를 지원하지 않습니다.

  • 각 Bin에 있는 요소의 백분율은 최대 100입니다.

'countdensity'

vi=ciwi

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

  • categorical형 데이터의 경우, 이는 'count'와 동일합니다.

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

  • 모든 Bin 면적의 합은 최대 numel(X)입니다.

'cumcount'

vi=j=1icj

  • 누적 도수, 즉 각 Bin과 이전의 모든 Bin의 관측값 개수입니다.

  • N(end)는 최대 numel(X)이며, categorical형 데이터인 경우에는 최대 sum(ismember(X(:),Categories))입니다.

'pdf'

vi=ciNwi

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

  • categorical형 데이터의 경우 이는 'probability'와 같습니다.

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

  • 모든 Bin 면적의 합은 최대 1입니다.

'cdf'

vi=j=1icjN

  • 누적 분포 함수 추정값입니다.

  • 각 Bin의 도수는 Bin과 이전의 모든 Bin의 관측값의 누적 상대 수와 같습니다.

  • N(end)는 최대 1입니다.

예: histogram(X,'Normalization','pdf')는 확률 밀도 함수의 추정값을 사용하여 데이터를 비닝합니다.

색과 스타일 지정

모두 확장

히스토그램 표시 스타일로, 'bar' 또는 'stairs'로 지정됩니다.

  • 'bar'A의 각 윈도우에 대한 히스토그램 막대 플롯을 표시합니다. 이 방법은 데이터에서 주기적 추세를 줄이는 데 유용합니다.

  • 'stairs' — 내부를 채우지 않고 히스토그램의 윤곽선을 표시하는 계단 플롯을 표시합니다.

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

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

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

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

BarWidth1이면 인접해 있는 막대가 서로 닿습니다.

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

예: 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"

    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

DisplayStyle'stairs'로 지정할 경우 histogram 함수는 FaceColor 속성을 사용하지 않습니다.

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

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

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

    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

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

히스토그램 막대의 투명도로, [0,1] 범위의 스칼라 값으로 지정됩니다. histogram 함수는 히스토그램의 모든 막대에 동일한 투명도를 사용합니다. 값이 1이면 완전히 불투명함을 의미하고 0이면 완전히 투명함(보이지 않음)을 의미합니다.

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

히스토그램 막대 가장자리의 투명도로, [0,1] 범위의 스칼라 값으로 지정됩니다. 값이 1이면 완전히 불투명함을 의미하고 0이면 완전히 투명함(보이지 않음)을 의미합니다.

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

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

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

Sample of solid line

"--"파선

Sample of dashed line

":"점선

Sample of dotted line

"-."일점 쇄선

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

"none"선 없음선 없음

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

예: 1.5

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

출력 인수

모두 확장

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

속성

Histogram 속성히스토그램의 모양과 동작

객체 함수

morebins히스토그램 Bin 개수 증가
fewerbins히스토그램 Bin 개수 감소

예제

모두 축소

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

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

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

h = 
  Histogram with properties:

             Data: [10000x1 double]
           Values: [2 2 1 6 7 17 29 57 86 133 193 271 331 421 540 613 730 748 776 806 824 721 623 503 446 326 234 191 132 78 65 33 26 11 8 5 5]
          NumBins: 37
         BinEdges: [-3.8000 -3.6000 -3.4000 -3.2000 -3 -2.8000 -2.6000 -2.4000 -2.2000 -2 -1.8000 -1.6000 -1.4000 -1.2000 -1 -0.8000 -0.6000 -0.4000 -0.2000 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 ... ] (1x38 double)
         BinWidth: 0.2000
        BinLimits: [-3.8000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to 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)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [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]
          NumBins: 25
         BinEdges: [-3.4000 -3.1200 -2.8400 -2.5600 -2.2800 -2 -1.7200 -1.4400 -1.1600 -0.8800 -0.6000 -0.3200 -0.0400 0.2400 0.5200 0.8000 1.0800 1.3600 1.6400 1.9200 2.2000 2.4800 2.7600 3.0400 3.3200 3.6000]
         BinWidth: 0.2800
        BinLimits: [-3.4000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to 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)

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

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

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

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

Nbins = 29

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

h.NumBins = 31;

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

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

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

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

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

h.Normalization = 'countdensity';

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

투표 항목을 나타내는 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
     no      no      yes      yes      yes      no      no      no      no      undecided      undecided      yes      no      no      no      yes      no      yes      no      yes      no      no      no      yes      yes      yes      yes 

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

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

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

h = 
  Histogram with properties:

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

  Use GET to show all properties

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

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

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

h = 
  Histogram with properties:

             Data: [1000x1 double]
           Values: [0.0030 1.0000e-03 0.0020 0.0150 0.0170 0.0270 0.0530 0.0790 0.0850 0.1010 0.1270 0.1100 0.1240 0.0950 0.0670 0.0320 0.0270 0.0160 0.0060 0.0060 0.0040 1.0000e-03 0.0020]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         BinWidth: 0.3000
        BinLimits: [-3.3000 3.6000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0 0 0]

  Use GET to show all properties

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

S = sum(h.Values)
S = 1

100,000개의 정규분포된 난수를 생성합니다. 표준편차 15, 평균 100을 사용합니다.

x = 100 + 15*randn(1e5,1);

난수의 히스토그램을 플로팅합니다. y축을 백분율로 스케일링하고 레이블을 지정합니다.

edges = 55:15:145;
histogram(x,edges,Normalization="percentage")
ytickformat("percentage")

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

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

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

Figure contains an axes object. The axes object contains 2 objects of type histogram.

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

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

Figure contains an axes object. The axes object contains 2 objects of type histogram.

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

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

h = 
  Histogram with properties:

             Data: [1000×1 double]
           Values: [3 1 2 15 17 27 53 79 85 101 127 110 124 95 67 32 27 16 6 6 4 1 2]
          NumBins: 23
         BinEdges: [-3.3000 -3.0000 -2.7000 -2.4000 -2.1000 -1.8000 -1.5000 -1.2000 -0.9000 -0.6000 -0.3000 0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3 3.3000 3.6000]
         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')

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

이 예제에서는 정규분포된 데이터의 기본 분포를 알 수 있습니다. 하지만 '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)

Figure contains an axes object. The axes object contains 2 objects of type histogram, line.

savefig 함수를 사용하여 histogram Figure를 저장합니다.

histogram(randn(10));
savefig('histogram.fig');
close gcf

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

h = openfig('histogram.fig');

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

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]

  Use GET to show all properties

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

  • 히스토그램 플롯에 데이터팁을 추가하면 Bin 경계값과 Bin 도수가 표시됩니다.

확장 기능

버전 내역

R2014b에 개발됨

모두 확장