Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

histogram

ヒストグラム プロット

  • Histogram plot

説明

ヒストグラムは棒グラフの一種で、データをビンにグループ分けします。Histogram オブジェクトの作成後、プロパティ値を変更してヒストグラムの特性を変更できます。これは、ビンのプロパティをすばやく変えたり表示を変えたりするのに特に役立ちます。

作成

説明

histogram(X)X のヒストグラム プロットを作成します。関数 histogram は、一様な幅のビンを返す自動ビン化アルゴリズムを使用します。X の要素の範囲をカバーし、分布の基本的な形状を明らかにするビンが選択されます。histogram は直方体バーとしてビンを表示し、個々の四角形の高さはビンの要素数を示します。

histogram(X,nbins) はビンの数を指定します。

histogram(X,edges) はベクトルで指定されたエッジをもつビンに X を振り分けます。

histogram('BinEdges',edges,'BinCounts',counts) は指定されたビンのカウント数をプロットし、データのビン化は行いません。

histogram(C) は、categorical 配列 C の各カテゴリのバーをもつヒストグラムをプロットします。

histogram(C,Categories) は、C のカテゴリのサブセットのみをプロットします。

histogram('Categories',Categories,'BinCounts',counts) では、カテゴリおよび対応するビンのカウント数を手動で指定します。histogram は指定されたビンのカウント数をプロットし、データのビン化は行いません。

histogram(___,Name,Value) は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のパラメーターを指定します。たとえば、別の種類の正規化を使用するには Normalization を指定します。プロパティの一覧については、Histogram のプロパティ を参照してください。

histogram(ax,___) は、現在の座標軸 (gca) ではなく指定した座標軸にプロットします。ax は、前述の構文における任意の入力引数の組み合わせの前で指定できます。

h = histogram(___)Histogram オブジェクトを返します。ヒストグラムのプロパティの検査や調整のためにこれを使用します。プロパティの一覧については、Histogram のプロパティ を参照してください。

入力引数

すべて展開する

ビンに分散させるデータ。ベクトル、行列または多次元配列として指定します。histogram は、行列と多次元配列のデータを 1 つの列ベクトル X(:) として扱い、1 つのヒストグラムをプロットします。

histogram はすべての NaN 値と NaT 値を無視します。同様にビンのエッジとして明示的に Inf または -Inf を指定しない限り、histogramInf 値および -Inf 値を無視します。通常、NaN 値、NaT 値、Inf 値、-Inf 値はプロットされませんが、'probability' などのデータ要素の総数を含む正規化計算に引き続き含まれます。

メモ

X に含まれる int64 型または uint64 型の整数が flintmax より大きい場合、ヒストグラムのビンのエッジを明示的に指定することが推奨されます。histogram は自動的に、倍精度を使用して入力データをビンに入れるので、flintmax を超える数値では整数精度が低下します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

カテゴリカル データ。categorical 配列として指定します。histogram は未定義のカテゴリカル値をプロットしません。ただし、未定義のカテゴリカル値は 'probability' などのデータ要素の総数を含む正規化計算に引き続き含まれます。

データ型: categorical

ビンの数。正の整数として指定します。nbins を指定しない場合は、histogramX の値からビンの数を判別します。

nbinsBinMethodBinWidth、または BinEdges と一緒に指定した場合、histogram は最後のパラメーターのみに従います。

例: histogram(X,15) は 15 個のビンをもつヒストグラムを作成します。

ビンのエッジ。ベクトルとして指定します。edges(1) は最初のビンの先頭のエッジ、edges(end) は最後のビンの後方のエッジです。

それぞれのビンは先頭のエッジを含み、後方のエッジを含みませんが、例外として最後のビンは両方のエッジを含みます。

datetime データおよび duration データの場合、edges は順に単調増加する datetime ベクトルまたは duration ベクトルでなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

メモ

このオプションはカテゴリカル ヒストグラムにのみ適用されます。

ヒストグラムに含めるカテゴリ。文字ベクトルの cell 配列、categorical 配列、string 配列、または pattern スカラーとして指定します。

  • 入力 categorical 配列 C を指定すると、histogram は既定で C の各カテゴリのバーをプロットします。その場合にカテゴリの一意のサブセットを指定するには、Categories を使用します。

  • ビンのカウント数を指定する場合、Categories にはヒストグラムの関連するカテゴリ名を指定します。

例: h = histogram(C,{'Large','Small'}) は、カテゴリ 'Large' および 'Small' のカテゴリカル データのみをプロットします。

例: histogram(C,"Y" + wildcardPattern) は、名前が文字 Y で始まるカテゴリにあるデータをプロットします。

例: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3]) は 3 つのカテゴリと関連するビンのカウント数をもつヒストグラムをプロットします。

例: h.Categories は、histogram オブジェクト h 内にあるカテゴリをクエリします。

データ型: cell | categorical | string | pattern

ビンのカウント数。ベクトルとして指定します。ビンのカウント数の計算が個別に実行され、histogram でデータのビン化を行わない場合、この入力を使用してビンのカウント数を histogram に渡します。

counts のサイズはビンの数と等しくなければなりません。

  • 数値ヒストグラムの場合、ビン数は length(edges)-1 です。

  • カテゴリカル ヒストグラムの場合、ビン数はカテゴリの数と同じです。

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

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

ターゲット座標軸。Axes オブジェクトまたは PolarAxes オブジェクトとして指定します。座標軸を指定しない場合、および現在の座標軸が直交座標軸の場合、関数 histogram は現在の座標軸 (gca) を使用します。極座標軸にプロットするには、最初の入力引数として PolarAxes オブジェクトを指定するか、関数 polarhistogram を使用します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

例: histogram(X,BinWidth=5)

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

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

メモ

ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Histogram のプロパティ を参照してください。

ビン

すべて展開する

ビンの幅。正のスカラーとして指定します。BinWidth を指定する場合、Histogram は最大 65,536 (216) 個のビンを使用できます。指定したビンの幅によってさらに多くのビンが必要となる場合、histogram は最大のビン数に対応する、より大きいビンの幅を使用します。

  • datetime データおよび duration データの場合、BinWidth をスカラー期間またはカレンダー期間にすることができます。

  • BinWidthBinMethodNumBins、または BinEdges と一緒に指定した場合、histogram は最後のパラメーターのみに従います。

  • このオプションは、カテゴリカル データには適用されません。

例: histogram(X,'BinWidth',5) は幅が 5 のビンを使用します。

ビンの範囲。2 要素ベクトル [bmin,bmax] として指定します。最初の要素は最初のビンのエッジを示します。2 番目の要素は最後のビンのエッジを示します。

このオプションを使用すると、ビンの範囲 X>=bmin & X<=bmax に含まれるデータのみを使用して計算します。

このオプションは、カテゴリカル データには適用されません。

例: histogram(X,'BinLimits',[1,10])1 以上 10 以下の X の値のみをビンに入れます。

ビンの範囲の選択モード。'auto' または 'manual' で指定します。既定値は 'auto' であり、ビンの範囲はデータに合わせて自動的に調整されます。

  • BinLimits または BinEdges を指定すると、BinLimitsMode'manual' に設定されます。BinLimitsMode'auto' に指定すると、ビンの範囲はデータに合わせて再びスケーリングされます。

  • このオプションは、カテゴリカル データのヒストグラムには適用されません。

ビン化アルゴリズム。次の表のいずれかの値を指定します。

説明

'auto'

既定値の 'auto' アルゴリズムは、データの範囲をカバーするビンの幅を選択することで、基となる分布の形状を明らかにします。

'scott'

スコットの法則はデータが正規分布に近い場合に最適です。この規則は他の多くの分布にも適しています。ビンの幅として 3.5*std(X(:))*numel(X)^(-1/3) を使用します。

'fd'

Freedman-Diaconis の法則は、データの外れ値の影響を受けにくく、裾が大きい分布をもつデータにより適しています。ビンの幅として 2*iqr(X(:))*numel(X)^(-1/3) を使用します。

'integers'

整数ルールは整数ごとにビンを作成するため整数データで役立ちます。幅が 1 のビンを使用し、ビンのエッジを整数の中間に設定します。

誤って多すぎるビンを作成しないように、このルールを使用して作成するビンを 65536 (216) 個以下に制限できます。データの範囲が 65,536 よりも大きい場合、整数ルールは代わりに幅の広いビンを使用します。

'integers' は datetime データまたは duration データをサポートしません。

'sturges'

Sturges の法則は簡単なためよく用いられています。ビンの数として ceil(1 + log2(numel(X))) を選択します。

'sqrt'

平方根ルールは他のソフトウェア パッケージで広く使用されています。ビンの数として ceil(sqrt(numel(X))) を選択します。

histogram は、これらの式を厳密に使用するのではなく、ビンのエッジが "きりのよい" 数字になるように、ビンの数をわずかに調整します。

datetime または duration データの場合は、ビンの幅をこれらの時間単位のいずれかとして指定します。

説明データ型
"second"

各ビンは 1 秒です。

datetimeduration
"minute"

各ビンは 1 分です。

datetimeduration
"hour"

各ビンは 1 時間です。

datetimeduration
"day"

各ビンは 1 カレンダー日です。この値には、夏時間のシフトが考慮されます。

datetimeduration
"week"各ビンは 1 カレンダー週です。datetime のみ
"month"各ビンは 1 カレンダー月です。datetime のみ
"quarter"各ビンは 1 カレンダー四半期です。datetime のみ
"year"

各ビンは 1 カレンダー年です。この値には、うるう日が考慮されます。

datetimeduration
"decade"各ビンは 10 年 (10 カレンダー年) です。datetime のみ
"century"各ビンは 1 世紀 (100 カレンダー年) です。datetime のみ

  • datetime または duration データに対して BinMethod を指定する場合、histogram は最大 65,536 個 (216) のビンを使用できます。指定したビンの期間にさらに多くのビンが必要となる場合、histogram は最大のビン数に対応する、より大きいビンの幅を使用します。

  • BinLimitsNumBinsBinEdges、または BinWidth を指定すると、BinMethod'manual' に設定されます。

  • BinMethodBinWidthNumBins、または BinEdges と一緒に指定した場合、histogram は最後のパラメーターのみに従います。

  • このオプションは、カテゴリカル データには適用されません。

例: histogram(X,'BinMethod','integers') はビンの中心を整数とします。

カテゴリ

すべて展開する

カテゴリの表示順序。'data''ascend'、または 'descend' として指定します。

  • 'data' — 入力データ C のカテゴリの順序を使用します。

  • 'ascend' — 増加するバーの高さとともにヒストグラムを表示します。

  • 'descend' — 減少するバーの高さとともにヒストグラムを表示します。

このオプションは、カテゴリカル データでのみ機能します。

表示するカテゴリ数。スカラーとして指定します。'DisplayOrder' オプションを使用して、ヒストグラムに表示されるカテゴリの順序を変更できます。

このオプションは、カテゴリカル データでのみ機能します。

非表示カテゴリに属するデータの概要表示の切り替え。'on' または 'off' として、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

  • このオプションを 'on' に設定すると、ヒストグラムに 'Others' という名前の追加のバーが表示されます。この追加のバーには、ヒストグラムに表示されるカテゴリに属さないすべての要素がカウントされます。

  • ヒストグラムに表示されるカテゴリ数とその順序は、'NumDisplayBins' および 'DisplayOrder' オプションを使用して変更できます。

  • このオプションは、カテゴリカル データでのみ機能します。

データ

すべて展開する

正規化のタイプ。次の表のいずれかの値を指定します。各ビン i に対して次のようになります。

  • vi はビンの値です。

  • ci はビン内の要素数です。

  • wi はビンの幅です。

  • N は入力データ内の要素数です。データに NaN などの欠損値が含まれる場合、または一部のデータがビンの範囲外にある場合、この値はビン化されたデータより大きくなることがあります。

ビンの値メモ
'count' (既定)

vi=ci

  • 観測のカウント数または頻度。

  • ビンの値の合計は最大で numel(X) で、categorical データの場合は sum(ismember(X(:),Categories)) です。合計がこれより小さくなるのは、一部の入力データがビンに含まれていない場合のみです。

'probability'

vi=ciN

  • 相対的確率。

  • 入力データの要素の総数に対する各ビンの要素数は、最大で 1 です。

'percentage'

vi=100*ciN

  • 相対的割合。

  • 'percentage' は categorical データをサポートしません。

  • 各ビンの要素の割合は最大で 100 です。

'countdensity'

vi=ciwi

  • ビンの幅でスケーリングされたカウント数または頻度。

  • categorical データの場合、これは、'count' と同じです。

  • 'countdensity' は、datetime データも duration データもサポートしません。

  • ビンの面積の合計は最大で numel(X) です。

'cumcount'

vi=j=1icj

  • 累積カウント数、つまり各ビンとそれ以前のすべてのビンの観測数です。

  • N(end) は最大で numel(X)、categorical データの場合は sum(ismember(X(:),Categories)) です。

'pdf'

vi=ciNwi

  • 確率密度関数の推定値です。

  • カテゴリカル データの場合、これは、'probability' と同じです。

  • 'pdf' は、datetime データも duration データもサポートしません。

  • ビンの面積の合計は最大で 1 です。

'cdf'

vi=j=1icjN

  • 累積分布関数の推定値です。

  • それぞれのビンのカウント数は、そのビンとそれ以前のすべてのビンの相対的な観測数の累積と等しくなります。

  • 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 の場合は、バー同士が隙間なく表示されます。

このオプションは、カテゴリカル データでのみ機能します。

例: 0.5

ヒストグラムのバーの色。次の値の 1 つとして指定します。

  • 'none' — バーは塗りつぶされません。

  • 'auto' — ヒストグラムのバーの色が自動的に選択されます (既定値)。

  • RGB 3 成分、16 進数カラー コードまたは色名 — バーは指定した色で塗りつぶされます。

    RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

    • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

    • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#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' に指定した場合、histogramFaceColor プロパティを使用しません。

例: histogram(X,'FaceColor','g') はバーが緑色のヒストグラム プロットを作成します。

ヒストグラムのエッジの色。次の値の 1 つとして指定します。

  • 'none' — エッジは描画されません。

  • 'auto' — 各エッジの色が自動的に選択されます。

  • RGB 3 成分、16 進数カラー コードまたは色名 — 指定した色がエッジで使用されます。

    RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

    • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

    • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。この値は大文字と小文字を区別しません。したがって、カラー コード "#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ヒストグラムのビンの数を増やす
fewerbinsヒストグラムのビン数の削減

すべて折りたたむ

10,000 個の乱数を生成してヒストグラムを作成します。関数 histogram は、x の値の範囲をカバーする適切なビンの数を自動的に選択し、基となる分布の形状を明らかにします。

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 オブジェクトが返されます。このオブジェクトを使用してビンの数やビンの幅などのヒストグラムのプロパティを調べることができます。

ヒストグラムのビンの数を調べます。

nbins = h.NumBins
nbins = 37

1,000 個の乱数を 25 個の等間隔に配置されたビンに並べ替えたヒストグラムをプロットします。

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

ビンのカウント数を調べます。

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 を使用してビンの数を大まかに調整します。

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

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

Nbins = 29

ビンの数を明示的に設定することにより、ビンが細分化されるように調整します。

h.NumBins = 31;

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

1,000 個の乱数を生成してヒストグラムを作成します。|x|<2 を満たさない外れ値を取得するために、ヒストグラムの両端に広いビンをもつビン エッジをベクトルとして指定します。ベクトルの最初の要素は最初のビンの左の端で、ベクトルの最後の要素は最後のビンの右の端です。

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' に指定して、外れ値を含むビンをフラットにします。これにより、それぞれのビンの (高さではなく) "面積" でその区間の観測頻度を表します。

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

バーの高さの合計を計算します。この正規化では、それぞれのバーの高さはそのビンの区間内の観測値が選択される確率に等しく、すべてのバーの高さを合計すると 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.

乱数の 2 つのベクトルを生成し、それぞれのベクトルのヒストグラムを同じ 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.

ヒストグラムの標本サイズとビンの幅が異なるため、これらを比較することは困難です。すべてのバーの高さを足すと 1 になるようにヒストグラムを正規化し、統一されたビンの幅を使用します。

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 オブジェクトを返します。

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

使用するビンの数を正確に指定します。

h.NumBins = 15;

ビンのエッジをベクトルで指定します。ベクトルの最初の値は最初のビンの左の端です。最後の値は最後のビンの右の端です。

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 の生成に使用した元の histogram オブジェクトを引き続き操作できるようになります。

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 ウィンドウ内での対話型操作を可能にするコンテキスト メニューがあります。たとえば、コンテキスト メニューを使用して、ビン数の変更、複数のヒストグラムの位置揃えまたは表示順序の変更を対話的に行うことができます。

  • データ ヒントをヒストグラム プロットに追加すると、データ ヒントにビンのエッジとビンのカウント数が表示されます。

拡張機能

バージョン履歴

R2014b で導入

すべて展開する