Main Content

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

histogram2

二変量ヒストグラム プロット

  • Bivariate histogram plot

説明

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

作成

説明

histogram2(X,Y) は、XY の二変量ヒストグラム プロットを作成します。関数 histogram2 は、一様な面積をもつビンを返す自動ビン化アルゴリズムを使用します。X および Y の要素の範囲をカバーし、分布の基本的な形状を明らかにするビンが選択されます。histogram2 は 3 次元の直方体バーとしてビンを表示し、各バーの高さはビンの要素数を示します。

histogram2(X,Y,nbins) は、各次元で使用するビン数を指定します。

histogram2(X,Y,Xedges,Yedges) は、ベクトルで指定した各次元のビンのエッジを使用して、XY をビンに振り分けます。

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

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

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

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

入力引数

すべて展開する

ビンに分散させるデータ。ベクトル、行列または多次元配列の個別の引数として指定します。XY は同じサイズでなければなりません。histogram2 は、行列または多次元配列のデータを 1 つの列ベクトル X(:) および Y(:) として扱い、1 つのヒストグラムをプロットします。

X および Y の対応する要素は、2 次元データ点の x 座標および y 座標 [X(k),Y(k)] を指定します。XY は異なるデータ型にすることができますが、histogram2 はこれらの入力を主要なデータ型の 1 つの N2 列の行列に連結します。

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

メモ

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

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

各次元のビンの数。正のスカラー整数、あるいは正の整数の 2 要素ベクトルとして指定します。

  • nbins がスカラーの場合、histogram2 は各次元でその数のビンを使用します。

  • nbins がベクトルの場合、最初の要素は x 次元のビンの数を指定し、2 番目の要素は y 次元のビンの数を指定します。

nbins を指定しない場合、histogram2XY の値に基づいて使用するビンの数を自動的に計算します。

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

例: histogram2(X,Y,20) は各次元で 20 個のビンを使用します。

例: histogram2(X,Y,[10 20])x 次元で 10 個のビン、y 次元で 20 個のビンを使用します。

x 次元のビンのエッジ。ベクトルとして指定します。最初の要素は、x 次元の最初のビンの先頭のエッジを指定します。最後の要素は、x 次元の最後のビンの後方のエッジを指定します。後方のエッジは最後のビンにのみ含まれます。

  • XedgesYedgesBinMethodBinWidth、または NumBins と一緒に指定した場合、histogram2 はビンのエッジのみに従い、ビンのエッジは最後に指定する必要があります。

  • XedgesXBinLimits と一緒に指定した場合、histogram2Xedges のみに従い、Xedges は最後に指定する必要があります。

y 次元のビンのエッジ。ベクトルとして指定します。最初の要素は、y 次元の最初のビンの先頭のエッジを指定します。最後の要素は、y 次元の最後のビンの後方のエッジを指定します。後方のエッジは最後のビンにのみ含まれます。

  • YedgesXedgesBinMethodBinWidth、または NumBins と一緒に指定した場合、histogram2 はビンのエッジのみに従い、ビンのエッジは最後に指定する必要があります。

  • YedgesYBinLimits と一緒に指定した場合、histogram2Yedges のみに従い、Yedges は最後に指定する必要があります。

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

counts は各ビンのカウント数を指定できるように、サイズ [length(XBinEdges)-1 length(YBinEdges)-1] の行列でなければなりません。

例: histogram2('XBinEdges',-1:1,'YBinEdges',-2:2,'BinCounts',[1 2 3 4; 5 6 7 8])

axes オブジェクト。座標軸を指定しない場合、関数 histogram2 は現在の座標軸 (gca) を使用します。

名前と値の引数

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

例: histogram2(X,Y,BinWidth=[5 10])

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

例: histogram2(X,Y,'BinWidth',[5 10])

メモ

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

ビン

すべて展開する

各次元のビンの幅。正の値の 2 要素ベクトルとして指定します。最初の要素は x 次元のビンの幅を指定し、2 番目の要素は y 次元のビンの幅を指定します。

BinWidth を指定した場合、histogram2 は各次元で最大 1024 (210) 個のビンを使用できます。指定したビンの幅によってさらに多くのビンが必要となる場合、histogram2 は最大のビン数に対応する、より大きなビンの幅を使用します。

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

例: histogram2(X,Y,'BinWidth',[5 10])x 次元のサイズが 5y 次元のサイズが 10 のビンを使用します。

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

このオプションを使用すると、ビンの範囲 X>=xbmin & X<=xbmax に含まれるデータのみがビンに入れられます。

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

XBinLimits または XBinEdges を明示的に指定した場合、XBinLimitsMode は自動的に 'manual' に設定されます。この場合に XBinLimitsMode'auto' に指定すると、ビンの範囲はデータに合わせて再びスケーリングされます。

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

このオプションを使用すると、ビンの範囲 Y>=ybmin & Y<=ybmax に含まれるデータのみがビンに入れられます。

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

YBinLimits または YBinEdges を明示的に指定した場合、YBinLimitsMode は自動的に 'manual' に設定されます。この場合に YBinLimitsMode'auto' に指定すると、ビンの範囲はデータに合わせて再びスケーリングされます。

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

説明
'auto'

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

'scott'

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

'fd'

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

'integers'

整数ルールは整数のペアを中心にしてビンを作成するので、整数データの場合に便利です。各次元に幅が 1 のビンを使用し、ビンのエッジを整数の中間に設定します。

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

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

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

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

例: histogram2(X,Y,'BinMethod','integers') は 2 次元ビンの中心を各整数ペアとします。

空のビンの表示トグル。'off' または 'on' として指定します。既定値は 'off' です。

例: histogram2(X,Y,'ShowEmptyBins','on') は空のビンの表示をオンにします。

データ

すべて展開する

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

  • vi はビンの値です。

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

  • Ai=wxiwyi はビンの面積で、ビンの幅 x と y を使用して計算されます。

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

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

vi=ci

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

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

'probability'

vi=ciN

  • 相対的確率。

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

'percentage'

vi=100*ciN

  • 相対的割合。

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

'countdensity'

vi=ciAi

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

  • N(end,end) は最大で numel(X) および numel(Y) です。

'cumcount'

vi=j=1icj

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

  • N(end,end) は最大で numel(X) および numel(Y) です。

'pdf'

vi=ciNAi

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

  • ビンの合計ボリュームは最大で 1 です。

'cdf'

vi=j=1icjN

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

  • N(end,end) は最大で 1 です。

例: histogram2(X,Y,'Normalization','pdf') は、確率密度関数の推定値を使用してデータをビン化します。

色とスタイル

すべて展開する

ヒストグラムの表示スタイル。'bar3' または 'tile' で指定します。

  • 'bar3' — 3 次元バーを使用してヒストグラムを表示します。

  • 'tile' — ビンの値を示す色をもつタイルの方形配列としてヒストグラムを表示します。

例: histogram2(X,Y,'DisplayStyle','tile') はヒストグラムをタイルの方形配列としてプロットします。

ヒストグラムのバーの色。次の値の 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' に指定した場合、histogram2FaceColor プロパティを使用しません。

例: histogram2(X,Y,'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

例: histogram2(X,Y,'EdgeColor','r') はバーのエッジが赤い二変量ヒストグラム プロットを作成します。

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

例: histogram2(X,Y,'FaceAlpha',0.5) は半透明のバーをもつ二変量ヒストグラム プロットを作成します。

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

例: histogram2(X,Y,'EdgeAlpha',0.5) はバーのエッジが半透明の二変量ヒストグラム プロットを作成します。

ヒストグラムのバーに対する照明効果。以下のいずれかの値として指定します。

説明
'lit'

疑似照明効果でヒストグラムのバーが表示されます。バーの側面には上面よりも暗い色を使用します。バーは座標軸内の他の光源の影響を受けません。

これは、DisplayStyle'bar3' のときの既定値です。

'flat'

ヒストグラムのバーには自動的に照明が適用されません。他の light オブジェクトが存在する場合、照明効果はバーの面で一様になります。

'none'

ヒストグラムのバーには自動的に照明が適用されず、ライトはヒストグラムのバーに影響しません。

DisplayStyle'tile' の場合、FaceLighting'none' にのみすることができます。

例: histogram2(X,Y,'FaceLighting','none') はヒストグラムのバーの照明をオフにします。

ライン スタイル。次の表にリストされたオプションのいずれかとして指定します。

ライン スタイル説明結果として得られる線
"-"実線

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

出力引数

すべて展開する

二変量ヒストグラム。オブジェクトとして返されます。詳細については、Histogram2 のプロパティ を参照してください。

プロパティ

Histogram2 のプロパティ二変量ヒストグラムの外観と動作

オブジェクト関数

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

すべて折りたたむ

10,000 組の乱数ペアを生成し、二変量ヒストグラムを作成します。関数 histogram2 は、x および y の値の範囲をカバーし、基となる分布の形状を示す適切なビンの数を自動的に選択します。

x = randn(10000,1);
y = randn(10000,1);
h = histogram2(x,y)
h = 
  Histogram2 with properties:

             Data: [10000x2 double]
           Values: [25x28 double]
          NumBins: [25 28]
        XBinEdges: [-3.9000 -3.6000 -3.3000 -3 -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.0000 3.3000 3.6000]
        YBinEdges: [-4.2000 -3.9000 -3.6000 -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 3.9000 4.2000]
         BinWidth: [0.3000 0.3000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

xlabel('x')
ylabel('y')

Figure contains an axes object. The axes object with xlabel x, ylabel y contains an object of type histogram2. This object represents y vs. x.

関数 histogram2 の出力引数を指定すると、histogram2 オブジェクトが返されます。このオブジェクトを使用してビンの数やビンの幅などのヒストグラムのプロパティを調べることができます。

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

nXnY = h.NumBins
nXnY = 1×2

    25    28

各次元に 5 個のビンを使用して、1,000 組の乱数ペアを 25 個の等間隔のビンに並べ替えた二変量ヒストグラムをプロットします。

x = randn(1000,1);
y = randn(1000,1);
nbins = 5;
h = histogram2(x,y,nbins)

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [5x5 double]
          NumBins: [5 5]
        XBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4]
        YBinEdges: [-4 -2.4000 -0.8000 0.8000 2.4000 4]
         BinWidth: [1.6000 1.6000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

得られたビンのカウント数を求めます。

counts = h.Values
counts = 5×5

     0     2     3     1     0
     2    40   124    47     4
     1   119   341   109    10
     1    32   117    33     1
     0     4     8     1     0

1,000 組の乱数ペアを生成し、二変量ヒストグラムを作成します。

x = randn(1000,1);
y = randn(1000,1);
h = histogram2(x,y)

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
        YBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
         BinWidth: [0.5000 0.5000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

関数 morebins を使用して x 次元のビンの数を大まかに調整します。

nbins = morebins(h,'x');
nbins = morebins(h,'x')

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

nbins = 1×2

    19    15

関数 fewerbins を使用して y 次元のビンの数を調整します。

nbins = fewerbins(h,'y');
nbins = fewerbins(h,'y')

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

nbins = 1×2

    19    11

ビンの数を明示的に設定して、ビンの数を細かいレベルで調整します。

h.NumBins = [20 10];

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

1,000 組の正規分布乱数と、各次元に 12 個のビンを使用して、二変量ヒストグラムを作成します。FaceColor'flat' に指定して、ヒストグラムのバーを高さ別に色分けします。

h = histogram2(randn(1000,1),randn(1000,1),[12 12],'FaceColor','flat');
colorbar

乱数データを生成し、二変量ヒストグラムのタイル配置をプロットします。ShowEmptyBins'on' に指定して、空のビンを表示します。

x = 2*randn(1000,1)+2;
y = 5*randn(1000,1)+3;
h = histogram2(x,y,'DisplayStyle','tile','ShowEmptyBins','on');

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

1,000 組の乱数ペアを生成し、二変量ヒストグラムを作成します。2 つのベクトルを使用してビンのエッジを指定し、ヒストグラムの境界にあるビンの幅を無限大にして、|x|<2 を満たさない外れ値をすべて取得します。

x = randn(1000,1);
y = randn(1000,1);
Xedges = [-Inf -2:0.4:2 Inf];
Yedges = [-Inf -2:0.4:2 Inf];
h = histogram2(x,y,Xedges,Yedges)

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [12x12 double]
          NumBins: [12 12]
        XBinEdges: [-Inf -2 -1.6000 -1.2000 -0.8000 -0.4000 0 0.4000 0.8000 1.2000 1.6000 2 Inf]
        YBinEdges: [-Inf -2 -1.6000 -1.2000 -0.8000 -0.4000 0 0.4000 0.8000 1.2000 1.6000 2 Inf]
         BinWidth: 'nonuniform'
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

ビンのエッジが無限大の場合、histogram2 は外れ値の各ビンをその隣のビンの 2 倍の幅をもつように (ヒストグラムの境界に沿って) 表示します。

Normalization プロパティを 'countdensity' に指定して、外れ値を含むビンを削除します。これで、各ビンの "ボリューム" は、その間隔での観測値の頻度を表します。

h.Normalization = 'countdensity';

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

1,000 組の乱数ペアを生成し、'probability' の正規化を使用して二変量ヒストグラムを作成します。

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

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
        YBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
         BinWidth: [0.5000 0.5000]
    Normalization: 'probability'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

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

S = sum(h.Values(:))
S = 1

100,000 個の正規分布乱数ベクトルを生成します。標準偏差として 15、平均値として 100 と 85 を使用します。

x = [100 85] + 15*randn(1e5,2);

乱数ベクトルのヒストグラムをプロットします。z 軸をパーセンテージとしてスケーリングおよびラベル付けします。

edges = 40:15:145;
histogram2(x(:,1),x(:,2),edges,edges,Normalization="percentage")
ztickformat("percentage")

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

1,000 組の乱数ペアを生成し、二変量ヒストグラムを作成します。プロット全体を再作成せずにヒストグラムのプロパティを調整するために histogram オブジェクトを返します。

x = randn(1000,1);
y = randn(1000,1);
h = histogram2(x,y)

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

h = 
  Histogram2 with properties:

             Data: [1000x2 double]
           Values: [15x15 double]
          NumBins: [15 15]
        XBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
        YBinEdges: [-3.5000 -3 -2.5000 -2 -1.5000 -1 -0.5000 0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
         BinWidth: [0.5000 0.5000]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

ヒストグラムのバーを高さ別に色分けします。

h.FaceColor = 'flat';

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

各方向のビンの数を変更します。

h.NumBins = [10 25];

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

ヒストグラムをタイル プロットとして表示します。

h.DisplayStyle = 'tile';
view(2)

Figure contains an axes object. The axes object contains an object of type histogram2. This object represents y vs. x.

関数 savefig を使用して histogram2 の Figure を保存します。

histogram2(randn(100,1),randn(100,1));
savefig('histogram2.fig');
close gcf

openfig を使用してヒストグラムの Figure を MATLAB® に再度読み込みます。openfig は Figure のハンドル h も返します。

h = openfig('histogram2.fig');

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

関数 findobj を使用して Figure のハンドルから正しいオブジェクト ハンドルを特定します。これによりこの Figure の生成に使用した元の histogram オブジェクトを引き続き操作できるようになります。

y = findobj(h,'type','histogram2')
y = 
  Histogram2 with properties:

             Data: [100x2 double]
           Values: [7x6 double]
          NumBins: [7 6]
        XBinEdges: [-3 -2 -1 0 1 2 3 4]
        YBinEdges: [-3 -2 -1 0 1 2 3]
         BinWidth: [1 1]
    Normalization: 'count'
        FaceColor: 'auto'
        EdgeColor: [0.1500 0.1500 0.1500]

  Use GET to show all properties

ヒント

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

拡張機能

バージョン履歴

R2015b で導入

すべて展開する