このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
histogram
ヒストグラム プロット
説明
ヒストグラムは棒グラフの一種で、データをビンにグループ分けします。Histogram
オブジェクトの作成後、プロパティ値を変更してヒストグラムの特性を変更できます。これは、ビンのプロパティをすばやく変えたり表示を変えたりするのに特に役立ちます。
作成
構文
説明
histogram(
は X
)X
のヒストグラム プロットを作成します。関数 histogram
は、一様な幅のビンを返す自動ビン化アルゴリズムを使用します。X
の要素の範囲をカバーし、分布の基本的な形状を明らかにするビンが選択されます。histogram
は直方体バーとしてビンを表示し、個々の四角形の高さはビンの要素数を示します。
histogram(
は、C
,Categories
)C
のカテゴリのサブセットのみをプロットします。
histogram('Categories',
では、カテゴリおよび対応するビンのカウント数を手動で指定します。Categories
,'BinCounts',counts
)histogram
は指定されたビンのカウント数をプロットし、データのビン化は行いません。
histogram(___,
は、前述の任意の構文について名前と値の引数を 1 つ以上使用して、追加のパラメーターを指定します。たとえば、別の種類の正規化を使用するには Name,Value
)Normalization
を指定します。プロパティの一覧については、Histogram のプロパティ を参照してください。
histogram(
は、現在の座標軸 (ax
,___)gca
) ではなく指定した座標軸にプロットします。ax
は、前述の構文における任意の入力引数の組み合わせの前で指定できます。
は h
= histogram(___)Histogram
オブジェクトを返します。ヒストグラムのプロパティの検査や調整のためにこれを使用します。プロパティの一覧については、Histogram のプロパティ を参照してください。
入力引数
X
— ビンに分散させるデータ
ベクトル | 行列 | 多次元配列
ビンに分散させるデータ。ベクトル、行列または多次元配列として指定します。histogram
は、行列と多次元配列のデータを 1 つの列ベクトル X(:)
として扱い、1 つのヒストグラムをプロットします。
histogram
はすべての NaN
値と NaT
値を無視します。同様にビンのエッジとして明示的に Inf
または -Inf
を指定しない限り、histogram
は Inf
値および -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
C
— categorical データ
categorical 配列
カテゴリカル データ。categorical 配列として指定します。histogram
は未定義のカテゴリカル値をプロットしません。ただし、未定義のカテゴリカル値は 'probability'
などのデータ要素の総数を含む正規化計算に引き続き含まれます。
データ型: categorical
nbins
— ビンの数
正の整数
ビンの数。正の整数として指定します。nbins
を指定しない場合は、histogram
は X
の値からビンの数を判別します。
nbins
を BinMethod
、BinWidth
、または BinEdges
と一緒に指定した場合、histogram
は最後のパラメーターのみに従います。
例: histogram(X,15)
は 15 個のビンをもつヒストグラムを作成します。
edges
— ビンのエッジ
ベクトル
ビンのエッジ。ベクトルとして指定します。edges(1)
は最初のビンの先頭のエッジ、edges(end)
は最後のビンの後方のエッジです。
それぞれのビンは先頭のエッジを含み、後方のエッジを含みませんが、例外として最後のビンは両方のエッジを含みます。
datetime
データおよび duration
データの場合、edges
は順に単調増加する datetime
ベクトルまたは duration
ベクトルでなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| datetime
| duration
Categories
— ヒストグラムに含めるカテゴリ
文字ベクトルの cell 配列 | categorical 配列 | string 配列 | pattern
スカラー
メモ
このオプションはカテゴリカル ヒストグラムにのみ適用されます。
ヒストグラムに含めるカテゴリ。文字ベクトルの 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
counts
— ビンのカウント数
ベクトル
ビンのカウント数。ベクトルとして指定します。ビンのカウント数の計算が個別に実行され、histogram
でデータのビン化を行わない場合、この入力を使用してビンのカウント数を histogram
に渡します。
counts
のサイズはビンの数と等しくなければなりません。
数値ヒストグラムの場合、ビン数は
length(edges)-1
です。カテゴリカル ヒストグラムの場合、ビン数はカテゴリの数と同じです。
例: histogram('BinEdges',-2:2,'BinCounts',[5 8 15 9])
例: histogram('Categories',{'Yes','No','Maybe'},'BinCounts',[22 18 3])
ax
— ターゲット座標軸
Axes
オブジェクト | PolarAxes
オブジェクト
ターゲット座標軸。Axes
オブジェクトまたは PolarAxes
オブジェクトとして指定します。座標軸を指定しない場合、および現在の座標軸が直交座標軸の場合、関数 histogram
は現在の座標軸 (gca
) を使用します。極座標軸にプロットするには、最初の入力引数として PolarAxes
オブジェクトを指定するか、関数 polarhistogram
を使用します。
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
例: histogram(X,BinWidth=5)
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: histogram(X,'BinWidth',5)
メモ
ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Histogram のプロパティ を参照してください。
BinWidth
— ビンの幅
正のスカラー
ビンの幅。正のスカラーとして指定します。BinWidth
を指定する場合、Histogram
は最大 65,536 (216) 個のビンを使用できます。指定したビンの幅によってさらに多くのビンが必要となる場合、histogram
は最大のビン数に対応する、より大きいビンの幅を使用します。
datetime
データおよびduration
データの場合、BinWidth
をスカラー期間またはカレンダー期間にすることができます。BinWidth
をBinMethod
、NumBins
、またはBinEdges
と一緒に指定した場合、histogram
は最後のパラメーターのみに従います。このオプションは、カテゴリカル データには適用されません。
例:
は幅が 5 のビンを使用します。histogram
(X,'BinWidth',5)
BinLimits
— ビンの範囲
2 要素ベクトル
ビンの範囲。2 要素ベクトル [bmin,bmax]
として指定します。最初の要素は最初のビンのエッジを示します。2 番目の要素は最後のビンのエッジを示します。
このオプションを使用すると、ビンの範囲 X>=bmin & X<=bmax
に含まれるデータのみを使用して計算します。
このオプションは、カテゴリカル データには適用されません。
例:
は histogram
(X,'BinLimits',[1,10])1
以上 10
以下の X
の値のみをビンに入れます。
BinLimitsMode
— ビンの範囲の選択モード
'auto'
(既定値) | 'manual'
ビンの範囲の選択モード。'auto'
または 'manual'
で指定します。既定値は 'auto'
であり、ビンの範囲はデータに合わせて自動的に調整されます。
BinLimits
またはBinEdges
を指定すると、BinLimitsMode
は'manual'
に設定されます。BinLimitsMode
を'auto'
に指定すると、ビンの範囲はデータに合わせて再びスケーリングされます。このオプションは、カテゴリカル データのヒストグラムには適用されません。
BinMethod
— ビン化アルゴリズム
'auto'
(既定値) | 'scott'
| 'fd'
| 'integers'
| 'sturges'
| 'sqrt'
| ...
ビン化アルゴリズム。次の表のいずれかの値を指定します。
値 | 説明 |
---|---|
| 既定値の |
| スコットの法則はデータが正規分布に近い場合に最適です。この規則は他の多くの分布にも適しています。ビンの幅として |
| Freedman-Diaconis の法則は、データの外れ値の影響を受けにくく、裾が大きい分布をもつデータにより適しています。ビンの幅として |
| 整数ルールは整数ごとにビンを作成するため整数データで役立ちます。幅が 1 のビンを使用し、ビンのエッジを整数の中間に設定します。 誤って多すぎるビンを作成しないように、このルールを使用して作成するビンを 65536 (216) 個以下に制限できます。データの範囲が 65,536 よりも大きい場合、整数ルールは代わりに幅の広いビンを使用します。
|
| Sturges の法則は簡単なためよく用いられています。ビンの数として |
| 平方根ルールは他のソフトウェア パッケージで広く使用されています。ビンの数として |
histogram
は、これらの式を厳密に使用するのではなく、ビンのエッジが "きりのよい" 数字になるように、ビンの数をわずかに調整します。
datetime
または duration
データの場合は、ビン化アルゴリズムをこれらの時間単位のいずれかとして指定します。
値 | 説明 | データ型 |
---|---|---|
"second" | 各ビンは 1 秒です。 | datetime と duration |
"minute" | 各ビンは 1 分です。 | datetime と duration |
"hour" | 各ビンは 1 時間です。 | datetime と duration |
"day" | 各ビンは 1 カレンダー日です。この値には、夏時間のシフトが考慮されます。 | datetime と duration |
"week" | 各ビンは 1 カレンダー週です。 | datetime のみ |
"month" | 各ビンは 1 カレンダー月です。 | datetime のみ |
"quarter" | 各ビンは 1 カレンダー四半期です。 | datetime のみ |
"year" | 各ビンは 1 カレンダー年です。この値には、うるう日が考慮されます。 | datetime と duration |
"decade" | 各ビンは 10 年 (10 カレンダー年) です。 | datetime のみ |
"century" | 各ビンは 1 世紀 (100 カレンダー年) です。 | datetime のみ |
datetime
またはduration
データに対してBinMethod
を指定する場合、histogram
は最大 65,536 個 (216) のビンを使用できます。指定したビンの期間にさらに多くのビンが必要となる場合、histogram
は最大のビン数に対応する、より大きいビンの幅を使用します。BinLimits
、NumBins
、BinEdges
、またはBinWidth
を指定すると、BinMethod
は'manual'
に設定されます。BinMethod
をBinWidth
、NumBins
、またはBinEdges
と一緒に指定した場合、histogram
は最後のパラメーターのみに従います。このオプションは、カテゴリカル データには適用されません。
例:
はビンの中心を整数とします。histogram
(X,'BinMethod','integers')
DisplayOrder
— カテゴリの表示順序
'data'
(既定値) | 'ascend'
| 'descend'
カテゴリの表示順序。'data'
、'ascend'
、または 'descend'
として指定します。
'data'
— 入力データC
のカテゴリの順序を使用します。'ascend'
— 増加するバーの高さとともにヒストグラムを表示します。'descend'
— 減少するバーの高さとともにヒストグラムを表示します。
このオプションは、カテゴリカル データでのみ機能します。
NumDisplayBins
— 表示するカテゴリ数
スカラー
表示するカテゴリ数。スカラーとして指定します。'DisplayOrder'
オプションを使用して、ヒストグラムに表示されるカテゴリの順序を変更できます。
このオプションは、カテゴリカル データでのみ機能します。
ShowOthers
— 非表示カテゴリに属するデータの概要表示の切り替え
'off'
(既定値) | on/off logical 値
非表示カテゴリに属するデータの概要表示の切り替え。'on'
または 'off'
として、もしくは数値または logical 1
(true
) または 0
(false
) として指定します。'on'
の値は true
と等価であり、'off'
は false
と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState
型の on/off logical 値として格納されます。
このオプションを
'on'
に設定すると、ヒストグラムに'Others'
という名前の追加のバーが表示されます。この追加のバーには、ヒストグラムに表示されるカテゴリに属さないすべての要素がカウントされます。ヒストグラムに表示されるカテゴリ数とその順序は、
'NumDisplayBins'
および'DisplayOrder'
オプションを使用して変更できます。このオプションは、カテゴリカル データでのみ機能します。
Normalization
— 正規化のタイプ
'count'
(既定値) | 'probability'
| 'percentage'
| 'countdensity'
| 'cumcount'
| 'pdf'
| 'cdf'
正規化のタイプ。次の表のいずれかの値を指定します。各ビン i
に対して次のようになります。
はビンの値です。
はビン内の要素数です。
はビンの幅です。
は入力データ内の要素数です。データに
NaN
などの欠損値が含まれる場合、または一部のデータがビンの範囲外にある場合、この値はビン化されたデータより大きくなることがあります。
値 | ビンの値 | メモ |
---|---|---|
'count' (既定) |
|
|
'probability' |
|
|
'percentage' |
|
|
'countdensity' |
|
|
'cumcount' |
|
|
'pdf' |
|
|
'cdf' |
|
|
例:
は、確率密度関数の推定値を使用してデータをビン化します。histogram
(X,'Normalization','pdf')
DisplayStyle
— ヒストグラムの表示スタイル
'bar'
(既定値) | 'stairs'
ヒストグラムの表示スタイル。'bar'
または 'stairs'
で指定します。
'bar'
—A
の各ウィンドウのヒストグラムの棒グラフを表示します。このメソッドは、データの周期的なトレンドを低減するのに便利です。'stairs'
— 内部を塗りつぶさずにヒストグラムの外枠を表示する階段状プロットを表示します。
例: histogram(X,'DisplayStyle','stairs')
はヒストグラムの外枠をプロットします。
Orientation
— バーの向き
'vertical'
(既定値) | 'horizontal'
バーの向き。'vertical'
または 'horizontal'
で指定します。
例: histogram(X,'Orientation','horizontal')
は水平なバーをもつヒストグラム プロットを作成します。
BarWidth
— カテゴリカル バーの相対的な幅
0.9
(既定値) | 範囲 [0,1]
のスカラー
カテゴリカル バーの相対的な幅。範囲 [0,1]
のスカラー値として指定します。このプロパティは、ヒストグラム内にあるカテゴリカル バーの間隔を制御するために使用します。既定値の 0.9
は、バーの幅が前のバーから次のバーまでの間隔の 90 % で、その間隔の 5 % ずつがバーの両側にあることを示します。
BarWidth
が 1
の場合は、バー同士が隙間なく表示されます。
このオプションは、カテゴリカル データでのみ機能します。
例: 0.5
FaceColor
— ヒストグラムのバーの色
'auto'
(既定値) | 'none'
| RGB 3 成分 | 16 進数カラー コード | 色名
ヒストグラムのバーの色。次の値の 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'
に指定した場合、histogram
は FaceColor
プロパティを使用しません。
例:
はバーが緑色のヒストグラム プロットを作成します。histogram
(X,'FaceColor','g')
EdgeColor
— ヒストグラムのエッジの色
[0 0 0]
または黒 (既定値) | 'none'
| 'auto'
| RGB 3 成分 | 16 進数カラー コード | 色名
ヒストグラムのエッジの色。次の値の 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')
FaceAlpha
— ヒストグラムのバーの透明度
0.6
(既定値) | [0,1]
の範囲のスカラー値
ヒストグラムのバーの透明度。範囲 [0,1]
のスカラー値として指定します。histogram
は同じ透明度をヒストグラムのすべてのバーで使用します。1
の値は完全な不透明を、0
の値は完全な透明 (非表示) を意味します。
例:
は完全に不透明なバーをもつヒストグラム プロットを作成します。histogram
(X,'FaceAlpha',1)
EdgeAlpha
— ヒストグラムのバーのエッジの透明度
1
(既定値) | 範囲 [0,1]
のスカラー
ヒストグラムのバーのエッジの透明度。範囲 [0,1]
のスカラー値として指定します。1
の値は完全な不透明を、0
の値は完全な透明 (非表示) を意味します。
例:
はバーのエッジが半透明のヒストグラム プロットを作成します。 histogram
(X,'EdgeAlpha',0.5)
LineStyle
— ライン スタイル
"-"
(既定値) | "--"
| ":"
| "-."
| "none"
ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。
ライン スタイル | 説明 | 結果として得られる線 |
---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
"none" | ラインなし | ラインなし |
LineWidth
— バーの外枠の幅
0.5
(既定値) | 正の値
バーの外枠の幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。
例: 1.5
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
h
— ヒストグラム
オブジェクト
ヒストグラム。オブジェクトとして返されます。詳細については、Histogram のプロパティ を参照してください。
プロパティ
Histogram のプロパティ | ヒストグラムの外観と動作 |
例
ベクトルのヒストグラム
10,000 個の乱数を生成してヒストグラムを作成します。関数 histogram
は、x
の値の範囲をカバーする適切なビンの数を自動的に選択し、基となる分布の形状を明らかにします。
x = randn(10000,1); h = histogram(x)
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)
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)
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)
Nbins = 29
ビンの数を明示的に設定することにより、ビンが細分化されるように調整します。
h.NumBins = 31;
ヒストグラムのビン エッジの指定
1,000 個の乱数を生成してヒストグラムを作成します。 を満たさない外れ値を取得するために、ヒストグラムの両端に広いビンをもつビン エッジをベクトルとして指定します。ベクトルの最初の要素は最初のビンの左の端で、ベクトルの最後の要素は最後のビンの右の端です。
x = randn(1000,1); edges = [-10 -2:0.25:2 10]; h = histogram(x,edges);
Normalization
プロパティを 'countdensity'
に指定して、外れ値を含むビンをフラットにします。これにより、それぞれのビンの (高さではなく) "面積" でその区間の観測頻度を表します。
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
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)
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')
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")
複数のヒストグラム プロット
乱数の 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: [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')
この例では基となる分布である正規分布のデータは既知です。しかし、'pdf'
ヒストグラム プロットを使用すれば既知の確率密度関数と比較することにより、データの基となる確率分布を特定できます。
平均値が 、標準偏差が 、分散が である正規分布の確率密度関数は次のようになります。
平均値が 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)
histogram オブジェクトの保存と読み込み
関数 savefig
を使用して histogram
の Figure を保存します。
histogram(randn(10)); savefig('histogram.fig'); close gcf
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] Use GET to show all properties
ヒント
histogram
を使用して作成したヒストグラム プロットのプロット編集モードには、Figure ウィンドウ内での対話型操作を可能にするコンテキスト メニューがあります。たとえば、コンテキスト メニューを使用して、ビン数の変更、複数のヒストグラムの位置揃えまたは表示順序の変更を対話的に行うことができます。データ ヒントをヒストグラム プロットに追加すると、データ ヒントにビンのエッジとビンのカウント数が表示されます。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
この関数は tall 配列を制限付きでサポートしています。
一部の入力オプションはサポートされていません。使用可能なオプションは次のとおりです。
'BinWidth'
'BinLimits'
'Normalization'
'DisplayStyle'
'BinMethod'
—'auto'
ビン メソッドと'scott'
ビン メソッドは同じです。'fd'
ビン メソッドはサポートされていません。'EdgeAlpha'
'EdgeColor'
'FaceAlpha'
'FaceColor'
'LineStyle'
'LineWidth'
'Orientation'
さらに、バーの最大数には上限があります。既定の最大値は 100 です。
morebins
メソッドとfewerbins
メソッドはサポートされていません。ビンの再計算が必要な histogram オブジェクトのプロパティの編集はサポートされていません。
詳細については、メモリに収まらないデータの tall 配列を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
この関数は GPU 配列を受け入れますが、GPU 上では実行されません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
この関数は分散配列に対して演算を行いますが、クライアントの MATLAB で実行されます。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2014b で導入R2023b: パーセンテージを使用した正規化
名前と値の引数 Normalization
を 'percentage'
に設定することにより、縦軸にパーセンテージをもつヒストグラムを作成できます。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)