Main Content

hist3

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

説明

hist3(X) は、10 行 10 列の等間隔のビンを使用して、X(:,1)X(:,2) の二変量ヒストグラム プロットを作成します。関数 hist3 は 3 次元の長方形棒としてビンを表示します。各棒の高さはビンの要素数を示します。

hist3(X,'Nbins',nbins) は、ヒストグラムの各次元におけるビンの個数を指定します。この構文は、hist3(X,nbins) と等価です。

hist3(X,'Ctrs',ctrs) は、ヒストグラムの各次元におけるビンの中心を指定します。この構文は、hist3(X,ctrs) と等価です。

hist3(X,'Edges',edges) は、各次元におけるビンのエッジを指定します。

hist3(___,Name,Value) では、前の構文の入力引数に加えて 1 つ以上の名前と値のペアの引数を使用して、グラフィック プロパティを指定します。たとえば、'FaceAlpha',0.5 は半透明のヒストグラムを作成します。プロパティの一覧については、Surface のプロパティを参照してください。

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

N = hist3(___) は、各ビンに分類される X 内の要素数を返します。この構文では、ヒストグラムは作成されません。

[N,c] = hist3(___) は、ビンの中心も返します。この構文では、ヒストグラムは作成されません。

すべて折りたたむ

標本データを読み込みます。

load carbig

既定の設定で二変量ヒストグラムを作成します。

X = [MPG,Weight];
hist3(X)
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

ビンの中心によって指定されるビンに対して二変量ヒストグラムを作成し、各ビンの要素数をカウントします。

標本データを読み込みます。

load carbig

二変量ヒストグラムを作成します。2 要素の cell 配列を使用して、ヒストグラム ビンの中心を指定します。

X = [MPG,Weight];
hist3(X,'Ctrs',{0:10:50 2000:500:5000})
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

各ビンの要素数をカウントします。

N = hist3(X,'Ctrs',{0:10:50 2000:500:5000})
N = 6×7

     0     0     0     0     0     0     0
     0     0     2     3    16    26     6
     6    34    50    49    27    10     0
    70    49    11     3     0     0     0
    29     4     2     0     0     0     0
     1     0     0     0     0     0     0

標本データを読み込みます。

load carbig

二変量ヒストグラムを作成します。観測値の頻度を表す高さによってヒストグラム バーの色を設定するように、グラフィック プロパティを指定します。

X = [MPG,Weight];
hist3(X,'CDataMode','auto','FaceColor','interp')
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

標本データを読み込みます。

load carbig

タイル表示された二変量ヒストグラムを作成します。観測値の頻度によってヒストグラム バーの上面の色を設定するように、グラフィック プロパティを指定します。表示を 2 次元に変更します。

X = [MPG,Weight];
hist3(X,'CdataMode','auto')
xlabel('MPG')
ylabel('Weight')
colorbar
view(2)

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

二変量ヒストグラムを作成し、ヒストグラムの surface オブジェクトのハンドルを使用してグラフィック プロパティを調整します。

標本データを読み込みます。

load carbig

各次元に 7 つのビンがある二変量ヒストグラムを作成します。

X = [MPG,Weight];
hist3(X,'Nbins',[7 7])
xlabel('MPG')
ylabel('Weight')

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

関数 hist3 は二変量ヒストグラムを作成します。これは表面プロットの一種です。surface オブジェクトのハンドルを取得し、表面の透明度を調整します。

s = findobj(gca,'Type','Surface');
s.FaceAlpha = 0.65;

Figure contains an axes object. The axes object with xlabel MPG, ylabel Weight contains an object of type surface.

二変量ヒストグラムを作成し、強度の 2 次元射影表示をヒストグラムに追加します。

seamount データ セットを読み込みます (seamount は海面下の山です)。このデータ セットは、一連の経度 (x) および緯度 (y) および、これらの座標で測定された対応する seamount の高さ (z) から構成されています。この例では、xy を使用して二変量ヒストグラムを描画します。

load seamount

二変量ヒストグラムを描画します。

hist3([x,y])
xlabel('Longitude')
ylabel('Latitude')
hold on

Figure contains an axes object. The axes object with xlabel Longitude, ylabel Latitude contains an object of type surface.

各ビンの要素数をカウントします。

N = hist3([x,y]);

pcolorを使用して、強度の 2 次元射影表示を描画するためのグリッドを生成します。

N_pcolor = N';
N_pcolor(size(N_pcolor,1)+1,size(N_pcolor,2)+1) = 0;
xl = linspace(min(x),max(x),size(N_pcolor,2)); % Columns of N_pcolor
yl = linspace(min(y),max(y),size(N_pcolor,1)); % Rows of N_pcolor

pcolor を使用して強度マップを描画します。ヒストグラムと強度マップが同時に表示されるように、強度マップの z レベルを設定します。

h = pcolor(xl,yl,N_pcolor);
colormap('hot') % Change color scheme 
colorbar % Display colorbar
h.ZData = -max(N_pcolor(:))*ones(size(N_pcolor));
ax = gca;
ax.ZTick(ax.ZTick < 0) = [];
title('Seamount Location Histogram and Intensity Map');

Figure contains an axes object. The axes object with title Seamount Location Histogram and Intensity Map, xlabel Longitude, ylabel Latitude contains 2 objects of type surface.

入力引数

すべて折りたたむ

ビン間で分配するデータ。m 行 2 列の数値行列を指定します。m はデータ点の個数です。X(:,1) および X(:,2) の対応する要素では、2 次元データ点の x 座標と y 座標を指定します。

hist3 は、すべての NaN 値を無視します。同様に、入力引数 edges を使用して Inf または –Inf を明示的にビンのエッジとして指定しない限り、hist3 は値 Inf および –Inf を無視します。

データ型: single | double

各次元のビンの個数。正の整数の 2 要素ベクトルを指定します。nbins(1) では 1 番目の次元のビンの個数を、nbins(2) では 2 番目の次元のビンの個数を指定します。

例: [10 20]

データ型: single | double

各次元のビンの中心。単調非減少の値が含まれている数値ベクトルによる 2 要素の cell 配列を指定します。ctrs{1}ctrs{2} はそれぞれ、1 番目の次元および 2 番目の次元におけるビンの中心の位置です。

hist3 は、グリッドの範囲外に分類される X の行を、グリッドの外側のエッジに沿ったビンに割り当てます。

例: {0:10:100 0:50:500}

データ型: cell

各次元のビンのエッジ。単調非減少の値が含まれている数値ベクトルによる 2 要素の cell 配列を指定します。edges{1}edges{2} はそれぞれ、1 番目の次元および 2 番目の次元におけるビンのエッジの位置です。

edges{1}(i) ≤ X(k,1) < edges{1}(i+1) かつ edges{2}(j) ≤ X(k,2) < edges{2}(j+1) である場合、値 X(k,:)(i,j) 番目のビンに含まれます。

各次元の最後のビンには、最後の (外側の) エッジも含まれます。たとえば、edges{1}(I–1) ≤ X(k,1) ≤ edges{1}(I) かつ edges{2}(j) ≤ X(k,2) < edges{2}(j+1) である場合、X(k,:)(I,j) 番目のビンに分類されます。Iedges{1} の長さです。また、edges{1}(i) ≤ X(k,1) < edges{1}(i+1) かつ edges{2}(J–1) ≤ X(k,2) ≤ edges{2}(J) である場合、X(k,:)(i,J) 番目のビンに分類されます。Jedges{2} の長さです。

hist3 は、グリッドの範囲外に分類される X の行をカウントしません。edges の中に、–InfInf を使って、すべての NaN でない値を含ませることができます。

例: {0:10:100 0:50:500}

データ型: cell

ターゲットの座標軸。axes オブジェクトを指定します。Axes オブジェクトが指定されなかった場合、関数 hist3 は現在の座標軸 (gca) を使用します。詳細については、Axes のプロパティ を参照してください。

名前と値の引数

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

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

例: hist3(X,'FaceColor','interp','CDataMode','auto') は、バーの高さに従ってヒストグラム バーに色付けします。

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

CData (頂点の色) の選択モード。'CDataMode' と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 'manual'CData プロパティで手動指定された値を使用します。CData の既定の色はライト スチール ブルーで、[0.75 0.85 0.95] という RGB 3 成分値に対応します。

  • 'auto'ZData の値を使用して色を設定します。ZData には、各バーの 8 つの頂点の z 座標データが含まれています。

例: 'CDataMode','auto'

エッジ ラインの色。'EdgeColor' と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 'none' — エッジを描画しません。

  • 'flat'CData プロパティの値に基づいて、異なる色を各エッジに使用します。

  • 'interp'CData プロパティの値に基づいて、内挿された色を各エッジに使用します。

  • RGB 3 成分、16 進数のカラー コード、色の名前または省略名 — 指定された色をすべてのエッジに使用します。これらの値では、CData プロパティの色の値は使用されません。

既定の色である [0 0 0] は黒のエッジに対応します。

RGB 3 成分と 16 進数のカラー コードは、カスタム色の指定に便利です。

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

  • 16 進数のカラー コードは、ハッシュ記号 (#) で始まり、0 から F の範囲にある 16 進数が 3 つまたは 6 つ続く、文字ベクトルまたは 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

例: 'EdgeColor','blue'

表面の透明度。'FaceAlpha' と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 範囲 [0,1] のスカラー — すべての表面で同じ透明度を使用します。値 1 では完全な不透明に、値 0 では完全な透明になります。01 の間にある値では半透明になります。このオプションでは、AlphaData プロパティの透明度の値は使用されません。

  • 'flat'AlphaData プロパティの値に基づいて、異なる透明度を各表面に使用します。最初の頂点における透明度の値によって表面全体の透明度が決定されます。この値が適用されるのは、AlphaData プロパティを指定し、FaceColor プロパティを 'flat' に設定した場合だけです。

  • 'interp'AlphaData プロパティの値に基づいて、内挿された透明度を各表面に使用します。頂点で値を内挿することにより、透明度が各表面域で変化します。この値が適用されるのは、AlphaData プロパティを指定し、FaceColor プロパティを 'interp' に設定した場合だけです。

  • 'texturemap' — 表面に適合するように AlphaData のデータを変換します。

例: 'FaceAlpha',0.5

表面の色。'FaceColor' と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 'flat'CData プロパティの値に基づき、各表面にそれぞれの色を使用します。

  • 'interp'CData プロパティの値に基づいて、内挿された色を各表面に使用します。

  • 'none' — 表面を描画しません。

  • 'texturemap' — 表面に適合するように CData の色データを変換します。

  • RGB 3 成分、16 進数のカラー コード、色の名前または省略名 — 指定された色をすべての表面に使用します。これらの値では、CData プロパティの色の値は使用されません。

RGB 3 成分と 16 進数のカラー コードは、カスタム色の指定に便利です。

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

  • 16 進数のカラー コードは、ハッシュ記号 (#) で始まり、0 から F の範囲にある 16 進数が 3 つまたは 6 つ続く、文字ベクトルまたは 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

例: 'FaceColor','interp'

ライン スタイル。'LineStyle' と次の表のいずれかのオプションから構成されるコンマ区切りのペアとして指定します。

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

Sample of solid line

"--"破線

Sample of dashed line

":"点線

Sample of dotted line

"-."一点鎖線

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

"none"ラインなしラインなし

例: 'LineStyle',':'

ラインの幅。'LineWidth' と正の値 (ポイント単位) から構成されるコンマ区切りのペアとして指定します。

例: 'LineWidth',0.75

データ型: single | double

出力引数

すべて折りたたむ

各ビンに分類される X の要素の個数。数値行列として返されます。

各次元のビンの中心。数値ベクトルによる 2 要素の cell 配列として返されます。c{1}c{2} はそれぞれ、1 番目の次元および 2 番目の次元におけるビンの中心の位置です。

ヒント

関数 hist3 は二変量ヒストグラムを作成します。これは表面プロットの一種です。表面のプロパティは、1 つ以上の名前と値のペアの引数を使用して指定できます。また、ヒストグラムの作成後に表面のプロパティの値を変更することにより、ヒストグラムの外観を変更できます。s = findobj(gca,'Type','Surface') を使用して surface オブジェクトのハンドルを取得し、その後、s を使用して表面のプロパティを変更します。たとえば、グラフィック プロパティの調整を参照してください。プロパティの一覧については、Surface のプロパティを参照してください。

代替機能

関数 histogram2 では、Histogram2 オブジェクトを使用して二変量ヒストグラムを作成できます。histogram2 の名前と値のペアの引数を使用することで、正規化の使用 (Normalization)、各次元におけるビン幅の調整 (BinWidth)、3 次元バーに代えてタイル方形配列によるヒストグラム表示 (DisplayStyle) ができます。

バージョン履歴

R2006a より前に導入