Main Content

bar

  • Bar graph

説明

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

bar(x,y) は、x で指定された位置にバーを描画します。

bar(___,width) は、バーの相対的な幅を設定し、グループ内におけるバーの間隔を制御します。width はスカラー値として指定します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

bar(___,style) は、バー グループのスタイルを指定します。たとえば、各グループを色分けされた 1 つのバーとして表示するには 'stacked' を使用します。

bar(___,color) は、すべてのバーの色を設定します。たとえば、バーの色を赤にするには 'r' を使用します。

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

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

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

すべて折りたたむ

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y)

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

バーの x 軸上の位置を指定します。

x = 1900:10:2000;
y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(x,y)

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

各バーの幅を、各バーに使用可能な間隔全体の 40% に設定します。

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,0.4)

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

3 つのバーからなる 4 つのグループを表示します。

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y)

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

行列の行ごとに 1 本のバーを表示します。各バーの高さは行の要素の合計になります。

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y,'stacked')

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];
bar(x,y,'stacked')

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

バーのカテゴリを示す 1 つの方法は、X を categorical 配列として指定することです。関数 bar はカテゴリの並べ替えられたリストを使用するため、バーが期待どおりの順序で表示されない場合があります。順序を保持するには、関数 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];
bar(X,Y)

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

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

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

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

最初の系列のバーの先端に値を表示します。最初の Bar オブジェクトの XEndPoints プロパティおよび YEndPoints プロパティを取得することにより、バーの先端の座標を取得します。これらの座標を関数 text に渡し、垂直方向と水平方向の配置を指定して、バーの先端上方の中央に値が表示されるようにします。

xtips1 = b(1).XEndPoints;
ytips1 = b(1).YEndPoints;
labels1 = string(b(1).YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom')

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

次に、2 番目の系列のバーの先端上方に値を表示します。

xtips2 = b(2).XEndPoints;
ytips2 = b(2).YEndPoints;
labels2 = string(b(2).YData);
text(xtips2,ytips2,labels2,'HorizontalAlignment','center',...
    'VerticalAlignment','bottom')

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

R2019b 以降では、関数 tiledlayout および関数 nexttile を使用して棒グラフをタイル表示できます。関数 tiledlayout を呼び出して、2 行 1 列のタイル表示チャート レイアウトを作成します。関数 nexttile を呼び出して、axes オブジェクト ax1 および ax2 を作成します。棒グラフを上の座標軸に表示します。下の座標軸には、同じデータの積み上げ型の棒グラフを表示します。

y = [1 2 3; 4 5 6];
tiledlayout(2,1)

% Top bar graph
ax1 = nexttile;
bar(ax1,y)

% Bottom bar graph
ax2 = nexttile;
bar(ax2,y,'stacked')

Figure contains 2 axes objects. Axes object 1 contains 3 objects of type bar. Axes object 2 contains 3 objects of type bar.

バーの色を赤にして棒グラフを作成します。

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,'r')

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

バーの内部の色と外枠の色を RGB 3 成分を使用して指定します。バーの外枠の幅を設定します。

y = [75 91 105 123.5 131 150 179 203 226 249 281.5];
bar(y,'FaceColor',[0 .5 .5],'EdgeColor',[0 .9 .9],'LineWidth',1.5)

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

Bar オブジェクトの CData プロパティを使用して個々のバーの色を制御します。

棒グラフを作成し、Bar オブジェクトを変数に割り当てます。Bar オブジェクトの FaceColor プロパティを 'flat' に設定して、CData プロパティで定義された色をグラフで使用します。既定では、CData プロパティに既定の RGB カラー値の行列が事前入力されています。特定の色を変更するには、行列の対応する行を変更します。たとえば、2 番目のバーの色を変更します。

b = bar(rand(10,1));
b.FaceColor = 'flat';
b.CData(2,:) = [.5 0 .5];

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

FaceColor プロパティを 'flat' に設定して、カラーマップの色を使用する棒グラフを作成します。次に、各 Bar オブジェクトの CData プロパティを整数に設定します。

y = [1 3 5; 3 2 7; 3 4 2];
b = bar(y,'FaceColor','flat');
for k = 1:size(y,2)
    b(k).CData = k;
end

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

列がそれぞれ 1 系列のデータである行列 y を作成します。関数 bar を呼び出してデータを棒グラフで表示し、出力引数を指定します。出力は、それぞれ別々の系列に対応する 3 つの Bar オブジェクトのベクトルです。これは、バーがグループ化されている場合でも積み上げ型の場合でも該当します。

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

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

3 番目の系列のバーを緑にします。

b(3).FaceColor = [.2 .6 .5];

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

入力引数

すべて折りたたむ

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

表示X と Y の指定方法
1 系列のバーを表示。

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

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

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];
bar(x,y)
または
x = [1980 1990];
y = [2 6 9
    11 22 32];
bar(x,y)

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];
bar(x,y)

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

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

表示X と Y の指定方法
1 系列のバーを表示。

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

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

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];
bar(x,y)
または
x = [1980 1990];
y = [2 6 9
    11 22 32];
bar(x,y)

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];
bar(x,y)

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 | duration

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

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

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

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

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

スタイル結果

'grouped'

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

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' と同じです。

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 を呼び出すことです。

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 を呼び出すことです。

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 オブジェクト。座標軸を指定しない場合、bar は棒グラフに現在の座標軸を使用します。

名前と値の引数

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

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

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

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

メモ

  • ここでは、プロパティの一部だけを紹介しています。完全な一覧については、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';

カラー データ。次のいずれかの値として指定します。

  • RGB 3 成分 — 単一の RGB カラー値をすべてのバーに適用します。

  • 3 列の行列 — バーごとに 1 色。行列の各行は、特定のバーの RGB 3 成分を指定します。

  • スカラー — 単一の色をすべてのバーに適用します。この色はカラーマップから得られます。

  • ベクトル — バーごとに 1 色。色はカラーマップから得られます。

既定では、棒グラフを作成するときに CData プロパティに RGB 3 成分から成る 3 列の行列が含まれます。行列内の対応する行を変更することで、特定のバーの色を変更できます。

このプロパティは、FaceColor または EdgeColor プロパティが 'flat' に設定されている場合にのみ適用されます。

FaceColor プロパティを 'flat' に設定して、特定のバーの色を変更します。次に、行列 CData 内の対応する行を新しい RGB 3 成分に変更します。たとえば、2 番目のバーの色を変更します。

b = bar(1:10,'FaceColor','flat');
b.CData(2,:) = [0 0.8 0.8];

Bar chart that has all dark blue bars except the second bar, which is cyan.

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

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

バーの外枠のライン スタイル。次の表のライン スタイルのいずれかとして指定します。

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

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

出力引数

すべて折りたたむ

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

詳細

すべて折りたたむ

バーの系列

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

バーのグループ

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

拡張機能

バージョン履歴

R2006a より前に導入