Main Content

barh

  • Horizontal bar graph

説明

barh(y) は、y の各要素を 1 本のバーで表す横棒グラフを作成します。y が m 行 n 列の行列である場合、barh はバーが n 本のグループを m 個作成します。

barh(x,y) は、x で指定された場所に、縦軸に沿ってバーを描画します。

barh(___,width) は、各バーが占める使用可能なスペースの割合を指定します。たとえば、barh(y,1) とした場合、各グループのバーは互いに接触します。前述のいずれかの構文で、最後の引数として width を指定します。

barh(___,style) は、バー グループのスタイルを指定します。たとえば、barh(y,'stacked') は、各グループ内のバーを積み重ねて色分けされたバーにします。

barh(___,color) は、すべてのバーに単色を指定します。たとえば、barh(y,'red') は赤のバーを表示します。

barh(___,Name,Value) は 1 つ以上の名前と値のペアの引数を使用して、棒グラフのプロパティを指定します。既定の 'grouped' または 'stacked' スタイルを使用する棒グラフのみが、バーのプロパティの設定をサポートします。名前と値のペアの引数は、その他すべての入力引数の後に指定します。プロパティの一覧については、Bar のプロパティ を参照してください。

barh(ax,___) は、ターゲット座標軸に棒グラフを表示します。前述の任意の構文で、最初の引数として座標軸を指定します。

b = barh(___) は、1 つ以上の Bar オブジェクトを返します。y がベクトルの場合、barh は 1 つの Bar オブジェクトを返します。y が行列の場合、barh系列ごとに 1 つの Bar オブジェクトを返します。棒グラフを表示後、b を使用してバーのプロパティを設定します。

すべて折りたたむ

4 つの値のベクトルを作成します。各値に 1 つの横棒が対応するように、値を棒グラフで表示します。

y = [10 20 30 41];
barh(y)

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

x を 3 つの年の値の行列として定義します。y を、4 都市の降雪量データを含む行列として定義します。4 系列のバーを、年ごとにグループ分けして表示します。次に、軸ラベルと凡例を追加します。

x = [1980 1990 2000];
y = [40 50 63 52; 42 55 50 48; 30 20 44 40];
barh(x,y)
xlabel('Snowfall')
ylabel('Year')
legend({'Springfield','Fairview','Bristol','Jamesville'})

Figure contains an axes object. The axes object with xlabel Snowfall, ylabel Year contains 4 objects of type bar. These objects represent Springfield, Fairview, Bristol, Jamesville.

R2023b 以降

4 つのバーの名前を含む string ベクトル x を作成します。バーの長さを含む数値ベクトル y を作成します。次に、xy の棒グラフを作成します。

x = ["Spring" "Summer" "Autumn" "Winter"];
y = [1 2 3 4];
barh(x,y)

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

行列 y を作成します。次に、ベースライン値を 25 として、y の値を棒グラフで表示します。25 より小さい値はベースラインの左側に表示されます。

y = [8 15 33; 30 35 40; 50 55 62];
barh(y,'BaseValue',25)

Figure contains an axes object. The axes object contains 3 objects of type bar.

x を 3 つの年の値のベクトルとして定義します。y を、負と正の値の組み合わせを含む行列として定義します。値を積み上げ型の横棒グラフで表示します。

x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
barh(x,y,'stacked')

Figure contains an axes object. The axes object contains 3 objects of type bar.

y を 4 つの値のベクトルとして定義し、値を横棒グラフで表示します。次に、関数 yticklabels を呼び出して、縦軸上の目盛りラベルを変更します。

y = [10 20 30 41];
barh(y)
yticklabels({'April','May','June','July'})

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

バーのカテゴリを示す 1 つの方法は、X を categorical 配列として指定することです。関数 barh はカテゴリの並べ替えられたリストを使用するため、バーが期待どおりの順序で表示されない場合があります。順序を保持するには、関数 reordercats を呼び出します。

X を categorical 配列として定義し、関数 reordercats を呼び出してバーの順序を指定します。次に、Y をバーの長さのベクトルとして定義し、棒グラフを表示します。

X = categorical({'Small','Medium','Large','Extra Large'});
X = reordercats(X,{'Small','Medium','Large','Extra Large'});
Y = [10 21 33 52];
barh(X,Y)

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

vals を、2 系列のデータを含む行列として定義します。データを横棒グラフで表示し、出力引数を指定します。2 つの系列があるため、barh は 2 つの Bar オブジェクトのベクトルを返します。

x = [1 2 3];
vals = [2 3 6; 11 23 26];
b = barh(x,vals);

Figure contains an axes object. The axes object contains 2 objects of type bar.

最初の系列のバーの先端に、値をラベルとして表示します。これを行うには、最初の Bar オブジェクトの XEndPoints プロパティおよび YEndPoints プロパティを取得することにより、バーの先端の座標を取得します。横棒グラフでは座標軸が回転しているため、XEndPointsYEndPoints の値を入れ替えてから関数 text に渡さなければなりません。バーの先端にテキストが触れないように、パディング値 0.3YEndpoints に追加します。次に、関数 text を呼び出してラベルを表示します。

xtips1 = b(1).YEndPoints + 0.3;
ytips1 = b(1).XEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'VerticalAlignment','middle')

Figure contains an axes object. The axes object contains 5 objects of type bar, text.

次に、同じ手順に従って、2 番目の系列のバーの先端にラベルを表示します。

xtips2 = b(2).YEndPoints + 0.3;
ytips2 = b(2).XEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'VerticalAlignment','middle')

Figure contains an axes object. The axes object contains 8 objects of type bar, text.

データを作成し、太さが 0.4 の赤いバーをもつ横棒グラフで表示します。

y = [10 22 30 42];
width = 0.4;
barh(y,width,'red');

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

列がそれぞれ 1 系列のデータである行列 y を作成します。次に、関数 barh を呼び出すときに出力引数を指定して、データを棒グラフで表示します。この場合、barh は 3 つの Bar オブジェクトのベクトルを返します。オブジェクトはそれぞれ別の系列に対応します。

y = [10 15 20; 30 35 40; 50 55 62];
b = barh(y);

Figure contains an axes object. The axes object contains 3 objects of type bar.

2 番目の系列のバーを、太い赤の縁取りをもつ緑に変更します。

b(2).FaceColor = [.2 .6 .5];
b(2).EdgeColor = [.63 .08 .18];
b(2).LineWidth = 2;

Figure contains an axes object. The axes object contains 3 objects of type bar.

データを作成し、既定の 'grouped' スタイルと 'stacked' スタイルを使用して、2 つの異なる棒グラフで表示します。

x = [1980 1990 2000];
y = [8 15 25; 30 35 40; 50 55 62];

% Grouped
tiledlayout(2,1);
ax1 = nexttile;
barh(ax1,x,y)
title('Grouped Style')

% Stacked
ax2 = nexttile;
barh(ax2,x,y,'stacked')
title('Stacked Style')

Figure contains 2 axes objects. Axes object 1 with title Grouped Style contains 3 objects of type bar. Axes object 2 with title Stacked Style contains 3 objects of type bar.

入力引数

すべて折りたたむ

縦軸の座標。スカラー、ベクトル、行列、string 配列、または文字ベクトルの cell 配列として指定します。x の値を順番にする必要はありませんが、x のサイズは、y のサイズとデータの表示方法によって異なります。次の表では、最も一般的な状況について説明します。

表示XY の指定方法
1 系列のバーを表示。

xy を同じ長さのベクトルとして指定します。x の値は一意でなければなりませんが、y の値が一意である必要はありません。

x = [1980 1990 2000];
y = [10 20 30];
barh(x,y)

Horizontal bar chart containing one series of bars. One blue bar is displayed at each location in x.

複数系列のバーをグループで表示。

以下のいずれかの組み合わせを指定します。

  • xy をサイズが等しい行列として指定。y の各列は、1 系列のバーに対応します。既定では、系列ごとに色が異なります。グループの一貫した配置を確保するには、x の列を同一のベクトルとして指定します。列が繰り返される場合でも、列内の値は一意でなければなりません。

  • x を一意な値のベクトルとして指定し、y を行列として指定。x の長さは、y の少なくとも 1 つの次元の長さと等しくなければなりません。y のもう一方の次元には、別の系列のバーの値が含まれています。

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
barh(x,y)
または
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

Horizontal bar chart containing three series of bars. Each location in x has a group of three bars. The first bar in each group is dark blue, the second bar is dark orange, and the third bar is dark yellow.

1 つの x 値を中心とするバーのグループを 1 つ表示。

x をスカラーとして、y をベクトルとして指定します。

x = 1990;
y = [10 20 30];
barh(x,y)

Horizontal bar chart containing one group of bars at the specified x location. The first bar is dark blue, the second bar is dark orange, and the third bar is dark yellow.

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration | string (R2023b 以降) | cell (R2023b 以降)

バーの長さ。スカラー、ベクトル、または行列として指定します。y のサイズは、x のサイズとデータの表示方法によって異なります。次の表では、最も一般的な状況について説明します。

表示XY の指定方法
1 系列のバーを表示。

xy を同じ長さのベクトルとして指定します。x の値は一意でなければなりませんが、y の値が一意である必要はありません。

x = [1980 1990 2000];
y = [10 20 30];
barh(x,y)

Horizontal bar chart containing one series of bars. One blue bar is displayed at each location in x.

複数系列のバーをグループで表示。

以下のいずれかの組み合わせを指定します。

  • xy をサイズが等しい行列として指定。y の各列は、1 系列のバーに対応します。既定では、系列ごとに色が異なります。グループの一貫した配置を確保するには、x の列を同一のベクトルとして指定します。列が繰り返される場合でも、列内の値は一意でなければなりません。

  • x を一意な値のベクトルとして指定し、y を行列として指定。x の長さは、y の少なくとも 1 つの次元の長さと等しくなければなりません。y のもう一方の次元には、別の系列のバーの値が含まれています。

x = [1980 1980 1980
     1990 1990 1990];
y = [2 6 9
    11 22 32];
barh(x,y)
または
x = [1980 1990];
y = [2 6 9
    11 22 32];
barh(x,y)

Horizontal bar chart containing three series of bars. Each location in x has a group of three bars. The first bar in each group is dark blue, the second bar is dark orange, and the third bar is dark yellow.

1 つの x 値を中心とするバーのグループを 1 つ表示。

x をスカラーとして、y をベクトルとして指定します。

x = 1990;
y = [10 20 30];
barh(x,y)

Horizontal bar chart containing one series of bars. One blue bar is displayed at each location in x.

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

バーの太さ。各バーに使用可能な間隔全体に対する割合として指定します。既定値の 0.8 は、各バーが前のバーから次のバーまでの間隔の 80% を使用し、両側に 10% ずつ空白があることを意味します。

太さが 1 の場合、グループ内でバー同士が隙間なく表示されます。

例: barh([1 2 3],0.5) は、使用可能な間隔の 50% を使用するバーを作成します。

グループのスタイル。次の値のいずれかとして指定します。

スタイル結果

'grouped'

各グループを、対応する x 値を中心とした隣接するバーとして表示します。

Horizontal bar chart containing three series of bars. Each location in x has a group of three bars. The first bar in each group is dark blue, the second bar is dark orange, and the third bar is dark yellow.

'stacked'

各グループを、色分けされた 1 つのバーとして表示します。バーの長さはグループ内の要素の合計です。

y がベクトルである場合、結果は 'grouped' と同じです。

Horizontal bar chart containing three series of bars that are stacked. Each location in x has one bar that has three different colored sections.

'histc'

バーをヒストグラム形式で表示します。この場合、グループ内のバーは互いに接触します。各グループの後方の端は、対応する x 値と揃えられます。

メモ

横向きのヒストグラムのより良い表示方法は、関数 histogram を呼び出して、名前と値のペアの引数 Orientation を指定することです。

Horizontal bar chart containing four series of bars in the histogram format. Each location in x has a group of four bars. The first bar in each group is dark blue, the second bar light blue, the third bar is green, and the fourth bar is yellow.

'hist'

バーをヒストグラム形式で表示します。各グループは対応する x 値を中心とします。

メモ

横向きのヒストグラムのより良い表示方法は、関数 histogram を呼び出して、名前と値のペアの引数 Orientation を指定することです。

Horizontal bar chart containing four series of bars in the histogram format. Each location in x has a group of four bars. The first bar in each group is dark blue, the second bar light blue, the third bar is green, and the fourth bar is yellow.

バーの色。次の表のオプションのいずれかとして指定します。

色名省略名外観
'red''r'

Sample of the color red

'green''g'

Sample of the color green

'blue''b'

Sample of the color blue

'cyan' 'c'

Sample of the color cyan

'magenta''m'

Sample of the color magenta

'yellow''y'

Sample of the color yellow

'black''k'

Sample of the color black

'white''w'

Sample of the color white

ターゲット座標軸。Axes オブジェクトとして指定します。座標軸を指定しない場合、棒グラフは現在の座標軸に表示されます。

名前と値の引数

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

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

例: barh([10 20 30],'EdgeColor','g') は、バーの外枠の色を緑に指定します。

メモ

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

  • これらのプロパティは、既定の 'grouped' スタイルまたは 'stacked' スタイルを使用する棒グラフでのみ設定できます。

外枠の色。'flat'、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。150 本以下のバーがある場合、既定値は [0 0 0] で黒に相当します。150 本を超えるバーが隣接している場合、既定値は 'none' です。

R2017b から、'flat' オプションは CData 値を使用してエッジに着色します。以前のリリースにおいて、'flat' オプションはカラーマップの色を使用してエッジに色を付けていました。

カスタム色を使用する場合は、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

"none"該当なし該当なし該当なし色なし

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

例: b = bar(1:10,'EdgeColor','red')

例: b.EdgeColor = [0 0.5 0.5];

例: b.EdgeColor = 'flat';

例: b.EdgeColor = '#D2F9A7';

塗りつぶし色。'flat'、RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。'flat' オプションは、Bar オブジェクトの CData プロパティ値を使用して面に着色します。

カスタム色を使用する場合は、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

"none"該当なし該当なし該当なし色なし

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

R2017b から、この既定値は座標軸の ColorOrder プロパティの RGB 3 成分です。以前のリリースにおいて、この既定値は 'flat' で、色はカラーマップに基づいていました。

例: b = bar(1:10,'FaceColor','red')

例: b.FaceColor = [0 0.5 0.5];

例: b.FaceColor = 'flat';

例: b.FaceColor = '#D2F9A7';

バーの外枠の幅。ポイント単位の正の値として指定します。1 ポイントは 1/72 インチです。

例: 1.5

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

ベースライン値。スカラー数値として指定します。

指定したベースライン値は、棒グラフの方向に応じて x 軸または y 軸のいずれかに適用されます。棒グラフの方向を垂直から水平に、またはその逆に変更した場合、ベースライン値は変更されることがあります。BaseValue プロパティは、Horizontal プロパティを設定した後に設定してください。

出力引数

すべて折りたたむ

Bar オブジェクト。作成後に特定の Bar オブジェクトのプロパティにアクセスして変更するには、b の要素を使用します。Bar オブジェクトの数は、y のサイズによって異なります。y がベクトルの場合、b は 1 つの Bar オブジェクトです。y が行列の場合、b は、y の系列ごとに 1 つの Bar オブジェクトを含むベクトルです。

詳細

すべて折りたたむ

バーの系列

系列は、特定データ セットの X におけるすべての場所にあるバーで構成されます。既定では、バーの系列はそれぞれ別々の色で示されます。

バーのグループ

グループは、X の特定の場所にあるすべてのバーで構成されます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する