ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

histogram

ヒストグラム プロット

説明

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

作成

説明

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

histogram(X,nbins) はスカラー nbins によって指定された数のビンを使用します。

histogram(X,edges) はベクトル edges によって指定されたエッジをもつビンに X を並べ替えます。それぞれのビンは左側のエッジを含み、右側のエッジを含みませんが、例外として最後のビンは両方のエッジを含みます。

histogram('BinEdges',edges,'BinCounts',counts) では、ビンのエッジと関連するビンのカウント数を手動で指定します。histogram は指定されたビンのカウント数をプロットし、データのビン化は行いません。

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

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

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

histogram(___,Name,Value) は、前述の任意の構文を用いて、1 つ以上の Name,Value のペアの引数を使用して追加オプションを指定します。たとえば、'BinWidth' とスカラーを指定してビンの幅を調整したり、'Normalization' と有効なオプション ('count''probability''countdensity''pdf''cumcount' または 'cdf') を指定して別の種類の正規化を使用することができます。プロパティの一覧については、Histogram のプロパティ を参照してください。

histogram(ax,___) は、現在の座標軸 (gca) の代わりに ax によって指定される座標軸にプロットします。オプションの ax は、前述の構文のすべての入力引数の組み合わせより前に指定できます。

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

入力引数

すべて展開する

ビンに分散させるデータ。ベクトル、行列または多次元配列として指定します。X がベクトルでない場合、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 の値に基づいて使用するビンの数を自動的に計算します。

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

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

edges(k)X(i) < edges(k+1) の場合、値 X(i)k 番目のビンに含まれます。最後のビンにはビンの右端も含まれるため、edges(end-1)X(i)edges(end) の場合に X(i) が含まれます。

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

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

メモ

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

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

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

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

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

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

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

データ型: cell | categorical

ビンのカウント数。ベクトルとして指定します。ビンのカウント数の計算が個別に実行され、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 を使用します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

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

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

メモ

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

カテゴリカル バーの相対的な幅。範囲 [0,1] のスカラー値として指定します。このプロパティは、ヒストグラム内にあるカテゴリカル バーの間隔を制御するために使用します。既定値の 0.9 は、バーの幅が前のバーから次のバーまでの間隔の 90 % で、その間隔の 5 % ずつがバーの両側にあることを示します。

このプロパティを 1 に設定すると、バー同士が隙間なく表示されます。

例: 0.5

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

ビンの範囲。2 要素ベクトル [bmin,bmax] として指定します。このオプションは、入力配列 Xbmin 以上 bmax 以下の値を使用してヒストグラムをプロットします。つまり、X(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) を使用します。ここで IQRX の四分位数間範囲です。

'integers'

整数ルールは整数ごとにビンを作成するため整数データで役立ちます。幅が 1 のビンを使用し、ビンのエッジを整数の中間に設定します。誤って多すぎるビンを作成しないように、このルールを使用して作成するビンを 65536 個以下に制限できます (216)。データの範囲が 65,536 よりも大きい場合、整数ルールは代わりに幅の広いビンを使用します。

メモ

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

'sturges'

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

'sqrt'

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

histogram は、これらの式を厳密に使用してビンの数を選択するとは限りません。場合によっては、ビンのエッジが "きりのよい" 数字になるように、ビンの数がわずかに調整されることがあります。

datetime データの場合、ビン メソッドを次の時間単位のいずれかにすることができます。

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

duration データの場合、ビン メソッドを次の時間単位のいずれかにすることができます。

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

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

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

メモ

BinLimitsNumBinsBinEdges または BinWidth プロパティを設定した場合、BinMethod プロパティは 'manual' に設定されます。

例: histogram(X,'BinMethod','integers') は整数を中心とするビンをもつヒストグラムを作成します。

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

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

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

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

カテゴリの表示順序。'ascend''descend'、または 'data' として指定します。'ascend' または 'descend' を使用すると、ヒストグラムには増加または減少するバーの高さが表示されます。既定の 'data' 値では、入力データ C のカテゴリの順序を使用します。

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

ヒストグラムの表示スタイル。'bar' または 'stairs' で指定します。'stairs' を指定すると、内部を塗りつぶさずにヒストグラムの外枠を表示する階段状プロットを表示します。

既定値の 'bar' はヒストグラムの棒グラフを表示します。

例: histogram(X,'DisplayStyle','stairs') はヒストグラムの外枠をプロットします。

ヒストグラムのバーのエッジの透明度。0 以上 1 以下のスカラー値として指定します。1 の値は完全な不透明を、0 の値は完全な透明 (非表示) を意味します。

例: histogram(X,'EdgeAlpha',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'

    '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') はバーのエッジが赤いヒストグラム プロットを作成します。

ヒストグラムのバーの透明度。0 以上 1 以下のスカラー値として指定します。histogram は同じ透明度をヒストグラムのすべてのバーで使用します。1 の値は完全な不透明を、0 の値は完全な透明 (非表示) を意味します。

例: histogram(X,'FaceAlpha',1) は完全に不透明なバーをもつヒストグラム プロットを作成します。

ヒストグラムのバーの色。次の値の 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'

    '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 に対して次のようになります。

  • vi はビンの値です。

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

  • wi はビンの幅です。

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

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

vi=ci

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

  • ビンの値の合計は numel(X) 以下です。一部の入力データがビンに含まれていない場合にのみ、合計は numel(X) 未満になります。

  • カテゴリカル データの場合、ビンの値の合計は numel(X) 以下または sum(ismember(X(:),Categories)) 以下のいずれかです。

'countdensity'

vi=ciwi

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

  • それぞれのバーの面積 (高さ * 幅) はビン内の観測数になります。バーの面積の合計は numel(X) 以下です。

  • カテゴリカル ヒストグラムの場合、これは 'count' と同じです。

メモ

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

'cumcount'

vi=j=1icj

  • 累積カウント数。各ビンの値は、そのビンとその前にあるすべてのビンの累積観測数です。

  • 最後のバーの高さは numel(X) 以下です。

  • カテゴリカル ヒストグラムの場合、最後のバーの高さは numel(X) 以下または sum(ismember(X(:),Categories)) 以下です。

'probability'

vi=ciN

  • 相対的確率。

  • バーの高さの合計は 1 以下です。

'pdf'

vi=ciNwi

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

  • それぞれのバーの面積は相対的な観測数になります。バーの面積の合計は 1 以下です。

  • カテゴリカル ヒストグラムの場合、これは 'probability' と同じです。

メモ

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

'cdf'

vi=j=1icjN

  • 累積密度関数の推定値です。

  • それぞれのバーの高さは、そのビンとそれ以前のすべてのビンの相対的な観測数の累積と等しくなります。最後のバーの高さは 1 以下です。

  • カテゴリカル データの場合、それぞれのバーの高さは、そのカテゴリとそれ以前のすべてのカテゴリの相対的な観測数の累積と等しくなります。

例: histogram(X,'Normalization','pdf')X の確率密度関数の推定値をプロットします。

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

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

バーの向き。'vertical' または 'horizontal' で指定します。

例: histogram(X,'Orientation','horizontal') は水平なバーをもつヒストグラム プロットを作成します。

非表示カテゴリに属するデータの概要表示の切り替え。'off' または 'on' として指定します。このオプションを 'on' に設定すると、ヒストグラムに 'Others' という名前の追加のバーが表示されます。この追加のバーには、ヒストグラムに表示されるカテゴリに属さないすべての要素がカウントされます。

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

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

出力引数

すべて展開する

ヒストグラム。オブジェクトとして返されます。詳細については、histogram を参照してください。

プロパティ

Histogram のプロパティヒストグラムの外観と動作

オブジェクト関数

morebinsヒストグラムのビンの数を増やす
fewerbinsヒストグラムのビン数の削減

すべて折りたたむ

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

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

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

nbins = h.NumBins
nbins = 37

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

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

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

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

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

Nbins = 29

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

h.NumBins = 31;

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

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

Normalization プロパティを 'countdensity' に指定して、外れ値を含むビンをフラットにします。これにより、それぞれのビンの (高さではなく) "面積" でその区間の観測頻度を表します。

h.Normalization = 'countdensity';

投票を表すカテゴリカル ベクトルを作成します。ベクトルのカテゴリは、'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

バーの高さの合計を計算します。この正規化では、それぞれのバーの高さはそのビンの区間内の観測値が選択される確率に等しく、すべてのバーの高さを合計すると 1 になります。

S = sum(h.Values)
S = 1

乱数の 2 つのベクトルを生成し、それぞれのベクトルのヒストグラムを同じ Figure にプロットします。

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

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

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

1,000 個の乱数を生成してヒストグラムを作成します。プロット全体を再作成せずにヒストグラムのプロパティを調整するために 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

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

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

この例では基となる分布である正規分布のデータは既知です。しかし、'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 の生成に使用した元の 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]

  Show all properties

ヒント

  • histogram を使用して作成したヒストグラム プロットのプロット編集モードには、Figure ウィンドウ内での対話型操作を可能にするコンテキスト メニューがあります。たとえば、コンテキスト メニューを使用して、ビン数の変更、複数のヒストグラムの位置揃えまたは表示順序の変更を対話的に行うことができます。

拡張機能

R2014b で導入