bar
棒グラフ

構文
説明
bar(___, は 1 つ以上の名前と値のペアの引数を使用して、棒グラフのプロパティを指定します。既定の Name,Value)'grouped' または 'stacked' スタイルを使用する棒グラフのみが、バーのプロパティの設定をサポートします。名前と値のペアの引数は、その他すべての入力引数の後に指定します。プロパティの一覧については、Bar のプロパティ を参照してください。
例
バーの x 軸上の位置を指定します。
x = 1900:10:2000; y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(x,y)

R2023b 以降
4 つのバーの名前を含む string ベクトル x を作成します。バーの長さを含む数値ベクトル y を作成します。次に、x と y の棒グラフを作成します。
x = ["Spring" "Summer" "Autumn" "Winter"]; y = [1 2 3 4]; bar(x,y)

各バーの幅を、各バーに使用可能な間隔全体の 40% に設定します。
y = [75 91 105 123.5 131 150 179 203 226 249 281.5]; bar(y,0.4)

行列の行ごとに 1 本のバーを表示します。各バーの高さは行の要素の合計になります。
y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y,'stacked')
スカラー x とベクトル y を作成します。x=2020 を中心とする積み上げ型のバーを 1 つ表示します。スタックの各セクションは y の要素に対応します。
x = 2020;
y = [30 50 23];
b = bar(x,y,"stacked");
積み上げ型のバーの幅を調整します。個々のバーは積み上げられているため、1 つの Bar オブジェクトの幅を変更すると、すべてのオブジェクトの幅が変化します。
b(1).BarWidth = 0.25;

x を 3 つの年の値のベクトルとして定義します。y を、負と正の値の組み合わせを含む行列として定義します。値を棒グラフで表示します。
x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
bar(x,y,'stacked')
バーのカテゴリを示す 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)
R2024b 以降
2 つのデータ セットの値を含む行列 vals を作成します。値を棒グラフで表示して、出力引数を指定します。データ セットが 2 つあるため、bar は 2 つの Bar オブジェクトからなるベクトルを返します。
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);

YData プロパティに保存されている高さの値を、最初の系列のバーの先端に表示します。
b(1).Labels = b(1).YData;

次に、2 番目の系列のバーに同様にラベルを付けます。
b(2).Labels = b(2).YData;

Labels プロパティを使用してバーのラベルを指定する代わりに、text 関数を使用してラベルを作成し、XEndPoints プロパティと YEndPoints プロパティを使用してラベルの位置を指定できます。
2 つのデータ セットの値を含む行列 vals を作成します。値を棒グラフで表示して、出力引数を指定します。データ セットが 2 つあるため、bar は 2 つの Bar オブジェクトからなるベクトルを返します。
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = bar(x,vals);

最初の系列のバーの先端に高さの値を表示します。最初の 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')

次に、2 番目の系列のバーの先端上方に値を表示します。
xtips2 = b(2).XEndPoints; ytips2 = b(2).YEndPoints; labels2 = string(b(2).YData); text(xtips2,ytips2,labels2,'HorizontalAlignment','center',... 'VerticalAlignment','bottom')

関数 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')

バーの内部の色と外枠の色を 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)

Bar オブジェクトの CData プロパティを使用して個々のバーの色を制御します。
棒グラフを作成し、Bar オブジェクトを変数に割り当てます。Bar オブジェクトの FaceColor プロパティを 'flat' に設定して、CData プロパティで定義された色をグラフで使用します。既定では、CData プロパティに既定の RGB カラー値の行列が事前入力されています。特定の色を変更するには、行列の対応する行を変更します。たとえば、2 番目のバーの色を変更します。
b = bar(rand(10,1));
b.FaceColor = 'flat';
b.CData(2,:) = [.5 0 .5];
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

R2023b 以降
名前付きカラー パレットは、チャートの色を変更する便利な方法です。次の例では、3 つの異なるカラー パレットを使用する棒グラフを比較します。
既定のパレットを使用して、乱数の棒グラフを作成します。
bar(rand(3,5))

関数 colororder を使用して、カラー パレットを reef に変更します。
colororder("reef")
カラー パレットを earth に変更します。
colororder("earth")
列がそれぞれ 1 系列のデータである行列 y を作成します。関数 bar を呼び出してデータを棒グラフで表示し、出力引数を指定します。出力は、それぞれ別々の系列に対応する 3 つの Bar オブジェクトのベクトルです。これは、バーがグループ化されている場合でも積み上げ型の場合でも該当します。
y = [10 15 20; 30 35 40; 50 55 62]; b = bar(y);

3 番目の系列のバーを緑にします。
b(3).FaceColor = [.2 .6 .5];

入力引数
x の座標。スカラー、ベクトル、行列、string 配列、または文字ベクトルの cell 配列として指定します。x の値を順番にする必要はありません。
x を string 配列または文字ベクトルの cell 配列として指定する場合、値は一意でなければなりません。MATLAB® では値を categorical 配列として格納し、指定された順序でバーを表示します。
次の表は、データの一般的な表示方法の一部を示したものです。
| 表示 | X と Y の指定方法 | 例 |
|---|---|---|
| 1 系列のバーを表示。 |
|
x = [1980 1990 2000]; y = [10 20 30]; bar(x,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)
|
1 つの x 値を中心とするバーのグループを 1 つ表示。 |
|
x = 1990; y = [10 20 30]; bar(x,y)
|
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration | string (R2023b 以降) | cell (R2023b 以降)
y 座標。スカラー、ベクトルまたは行列として指定します。次の表は、データの一般的な表示方法の一部を示したものです。
| 表示 | X と Y の指定方法 | 例 |
|---|---|---|
| 1 系列のバーを表示。 |
|
x = [1980 1990 2000]; y = [10 20 30]; bar(x,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)
|
1 つの x 値を中心とするバーのグループを 1 つ表示。 |
|
x = 1990; y = [10 20 30]; bar(x,y)
|
データ型: 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
グループのスタイル。次の値のいずれかとして指定します。
| スタイル | 結果 | 例 |
|---|---|---|
| 各グループを、対応する |
|
| 各グループを、色分けされた 1 つのバーとして表示します。バーの長さはグループ内の要素の合計です。
|
|
| バーをヒストグラム形式で表示します。この場合、グループ内のバーは互いに接触します。各グループの後方の端は、対応する メモ ヒストグラムのより良い表示方法は、関数 |
|
| バーをヒストグラム形式で表示します。各グループは対応する メモ ヒストグラムのより良い表示方法は、関数 |
|
バーの色。次の表のオプションのいずれかとして指定します。
| 色名 | 省略名 | 外観 |
|---|---|---|
'red' | 'r' |
|
'green' | 'g' |
|
'blue' | 'b' |
|
'cyan' | 'c' |
|
'magenta' | 'm' |
|
'yellow' | 'y' |
|
'black' | 'k' |
|
'white' | 'w' |
|
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" |
|
"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" |
|
"none" | 該当なし | 該当なし | 該当なし | 色なし |
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
| パレット | パレットの色 |
|---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。
例: 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" |
|
"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" |
|
"none" | 該当なし | 該当なし | 該当なし | 色なし |
次の表に、ライト テーマとダーク テーマでのプロットの既定のカラー パレットを示します。
| パレット | パレットの色 |
|---|---|
R2025a より前: ほとんどのプロットで、これらの色が既定で使用されます。 |
|
|
|
orderedcolors 関数と rgb2hex 関数を使用すると、これらのパレットの RGB 3 成分および 16 進数カラー コードを取得できます。たとえば、"gem" パレットの RGB 3 成分を取得し、16 進数カラー コードに変換します。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);R2023b より前: RGB = get(groot,"FactoryAxesColorOrder") を使用して、RGB 3 成分を取得します。
R2024a より前: H = compose("#%02X%02X%02X",round(RGB*255)) を使用して、16 進数カラー コードを取得します。
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];

ベースライン値。スカラー数値として指定します。
指定したベースライン値は、棒グラフの方向に応じて x 軸または y 軸のいずれかに適用されます。棒グラフの方向を垂直から水平に、またはその逆に変更した場合、ベースライン値は変更されることがあります。BaseValue プロパティは、Horizontal プロパティを設定した後に設定してください。
バーの外枠のライン スタイル。次の表のライン スタイルのいずれかとして指定します。
| ライン スタイル | 説明 | 結果として得られる線 |
|---|---|---|
"-" | 実線 |
|
"--" | 破線 |
|
":" | 点線 |
|
"-." | 一点鎖線 |
|
"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 の特定の場所にあるすべてのバーで構成されます。
拡張機能
bar 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
この関数は GPU 配列を受け入れますが、GPU 上では実行されません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
使用上の注意および制限:
この関数は分散配列に対して演算を行いますが、クライアントの MATLAB で実行されます。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入棒グラフを作成する場合、string ベクトル、または文字ベクトルの cell 配列としてバーのラベルを指定できます。バーの目盛りラベルは、指定の順序で表示されます。
参考
関数
プロパティ
外部の Web サイト
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)























