barh
横棒グラフ

構文
説明
barh(___,
は、各バーが占める使用可能なスペースの割合を指定します。たとえば、width
)barh(y,1)
とした場合、各グループのバーは互いに接触します。前述のいずれかの構文で、最後の引数として width
を指定します。
barh(___,
は 1 つ以上の名前と値のペアの引数を使用して、棒グラフのプロパティを指定します。既定の Name,Value
)'grouped'
または 'stacked'
スタイルを使用する棒グラフのみが、バーのプロパティの設定をサポートします。名前と値のペアの引数は、その他すべての入力引数の後に指定します。プロパティの一覧については、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'})
R2023b 以降
4 つのバーの名前を含む string ベクトル x
を作成します。バーの長さを含む数値ベクトル y
を作成します。次に、x
と y
の棒グラフを作成します。
x = ["Spring" "Summer" "Autumn" "Winter"]; y = [1 2 3 4]; barh(x,y)
行列 y
を作成します。次に、ベースライン値を 25
として、y
の値を棒グラフで表示します。25
より小さい値はベースラインの左側に表示されます。
y = [8 15 33; 30 35 40; 50 55 62];
barh(y,'BaseValue',25)
x
を 3 つの年の値のベクトルとして定義します。y
を、負と正の値の組み合わせを含む行列として定義します。値を積み上げ型の横棒グラフで表示します。
x = [1980 1990 2000];
y = [15 20 -5; 10 -17 21; -10 5 15];
barh(x,y,'stacked')
y
を 4 つの値のベクトルとして定義し、値を横棒グラフで表示します。次に、関数 yticklabels
を呼び出して、縦軸上の目盛りラベルを変更します。
y = [10 20 30 41]; barh(y) yticklabels({'April','May','June','July'})
バーのカテゴリを示す 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)
R2024b 以降
2 つの系列のデータを含む行列 vals
を作成します。データを横棒グラフで表示し、出力引数を指定します。2 つの系列があるため、barh
は 2 つの Bar
オブジェクトからなるベクトルを返します。
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = barh(x,vals);
YData
プロパティに保存されているバーの値を、最初の系列のバーの先端に表示します。
b(1).Labels = b(1).YData;
次に、2 番目の系列のバーに同様にラベルを付けます。
b(2).Labels = b(2).YData;
Labels
プロパティを使用してバーのラベルを指定する代わりに、text
関数を使用してラベルを作成し、XEndPoints
プロパティと YEndPoints
プロパティを使用してラベルの位置を指定できます。
2 つの系列のデータを含む行列 vals
を作成します。データを横棒グラフで表示し、出力引数を指定します。2 つの系列があるため、barh
は 2 つの Bar
オブジェクトからなるベクトルを返します。
x = [1 2 3]; vals = [2 3 6; 11 23 26]; b = barh(x,vals);
最初の系列のバーの先端にバーの値を表示します。最初の Bar
オブジェクトの XEndPoints
プロパティおよび YEndPoints
プロパティを取得することにより、バーの先端の座標を取得します。横棒グラフでは座標軸が回転しているため、XEndPoints
と YEndPoints
の値を入れ替えてから関数 text
に渡します。バーの先端にテキストが触れないように、パディング値 0.3
を YEndpoints
に追加します。次に、関数 text
を呼び出してラベルを表示します。
xtips1 = b(1).YEndPoints + 0.3; ytips1 = b(1).XEndPoints; labels1 = string(b(1).YData); text(xtips1,ytips1,labels1,'VerticalAlignment','middle')
次に、同じ手順に従って、2 番目の系列のバーの先端に値を表示します。
xtips2 = b(2).YEndPoints + 0.3; ytips2 = b(2).XEndPoints; labels2 = string(b(2).YData); text(xtips2,ytips2,labels2,'VerticalAlignment','middle')
データを作成し、太さが 0.4
の赤いバーをもつ横棒グラフで表示します。
y = [10 22 30 42];
width = 0.4;
barh(y,width,'red');
列がそれぞれ 1 系列のデータである行列 y
を作成します。次に、関数 barh
を呼び出すときに出力引数を指定して、データを棒グラフで表示します。この場合、barh
は 3 つの Bar
オブジェクトのベクトルを返します。オブジェクトはそれぞれ別の系列に対応します。
y = [10 15 20; 30 35 40; 50 55 62]; b = barh(y);
2 番目の系列のバーを、太い赤の縁取りをもつ緑に変更します。
b(2).FaceColor = [.2 .6 .5]; b(2).EdgeColor = [.63 .08 .18]; b(2).LineWidth = 2;
データを作成し、既定の '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')
入力引数
縦軸の座標。スカラー、ベクトル、行列、string 配列、または文字ベクトルの cell 配列として指定します。x
の値を順番にする必要はありません。
x
を string 配列または文字ベクトルの cell 配列として指定する場合、値は一意でなければなりません。MATLAB® では値を categorical 配列として格納し、指定された順序でバーを表示します。
次の表は、データの一般的な表示方法の一部を示したものです。
表示 | X と Y の指定方法 | 例 |
---|---|---|
1 系列のバーを表示。 |
|
x = [1980 1990 2000]; y = [10 20 30]; barh(x,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)
|
1 つの x 値を中心とするバーのグループを 1 つ表示。 |
|
x = 1990; y = [10 20 30]; barh(x,y)
|
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
| string
(R2023b 以降) | cell
(R2023b 以降)
バーの長さ。スカラー、ベクトル、または行列として指定します。y
のサイズは、x
のサイズとデータの表示方法によって異なります。次の表では、最も一般的な状況について説明します。
表示 | X と Y の指定方法 | 例 |
---|---|---|
1 系列のバーを表示。 |
|
x = [1980 1990 2000]; y = [10 20 30]; barh(x,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)
|
1 つの x 値を中心とするバーのグループを 1 つ表示。 |
|
x = 1990; y = [10 20 30]; barh(x,y)
|
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| duration
バーの太さ。各バーに使用可能な間隔全体に対する割合として指定します。既定値の 0.8
は、各バーが前のバーから次のバーまでの間隔の 80% を使用し、両側に 10% ずつ空白があることを意味します。
太さが 1
の場合、グループ内でバー同士が隙間なく表示されます。
例: barh([1 2 3],0.5)
は、使用可能な間隔の 50% を使用するバーを作成します。
グループのスタイル。次の値のいずれかとして指定します。
スタイル | 結果 | 例 |
---|---|---|
| 各グループを、対応する |
|
| 各グループを、色分けされた 1 つのバーとして表示します。バーの長さはグループ内の要素の合計です。
|
|
| バーをヒストグラム形式で表示します。この場合、グループ内のバーは互いに接触します。各グループの後方の端は、対応する メモ 横向きのヒストグラムのより良い表示方法は、関数 |
|
| バーをヒストグラム形式で表示します。各グループは対応する メモ 横向きのヒストグラムのより良い表示方法は、関数 |
|
バーの色。次の表のオプションのいずれかとして指定します。
色名 | 省略名 | 外観 |
---|---|---|
'red' | 'r' | |
'green' | 'g' | |
'blue' | 'b' | |
'cyan' | 'c' | |
'magenta' | 'm' | |
'yellow' | 'y' | |
'black' | 'k' | |
'white' | 'w' | |
ターゲット座標軸。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" | |
"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';
バーの外枠の幅。ポイント単位の正の値として指定します。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
の特定の場所にあるすべてのバーで構成されます。
拡張機能
barh
関数は 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)