このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
legend
座標軸への凡例の追加
構文
説明
legend
は、プロットされたデータ系列ごとに説明ラベルがある凡例を作成します。ラベルについては、凡例ではデータ系列の DisplayName
プロパティのテキストが使用されます。DisplayName
プロパティが空の場合、凡例では 'dataN'
形式のラベルが使用されます。この凡例は、座標軸でデータ系列を追加または削除すると自動的に更新されます。このコマンドは gca
コマンドにより返される現在の座標軸の凡例を作成します。現在の座標軸が空の場合、凡例も空になります。座標軸が存在しない場合、legend
は直交座標軸を作成します。
legend(
は凡例のラベルを設定します。ラベルを label1,...,labelN
)legend('Jan','Feb','Mar')
などの文字ベクトルまたは string のリストとして指定します。
legend(
は文字ベクトルの cell 配列、string 配列または文字行列を使用してラベルを設定します (たとえば labels
)legend({'Jan','Feb','Mar'})
)。
legend(
には subset
,___)subset
にリストされたデータ系列に対する凡例の項目のみが含まれます。subset
をグラフィックス オブジェクトのベクトルとして指定します。subset
は、ラベルを指定する前に指定することも、他の入力引数がない状態で指定することもできます。
legend(___,'Location',
は凡例の位置を設定します。たとえば、lcn
)'Location','northeast'
は座標軸の右上隅に凡例を配置します。位置は、他の入力引数の後に指定します。
legend(___,'Orientation',
(ornt
)ornt
が 'horizontal'
の場合) は凡例項目を横に並べて表示します。ornt
の既定は 'vertical'
で、項目を縦に並べます。
legend(___,
は、名前と値のペア引数を 1 つ以上使用して、凡例プロパティを設定します。Name,Value
)
は、lgd
= legend(___)Legend
オブジェクトを返します。lgd
を使用して、凡例の作成後にそのプロパティのクエリと設定を行います。プロパティの一覧については、Legend のプロパティ を参照してください。
legend(
は凡例の可視性を制御します。vsbl
)vsbl
は 'hide'
、'show'
または 'toggle'
です。
legend('off')
は凡例を削除します。
例
現在の座標軸に凡例を追加
2 本のラインをプロットし、凡例を現在の座標軸に追加します。凡例ラベルを関数 legend
の入力引数として指定します。
x = linspace(0,pi); y1 = cos(x); plot(x,y1) hold on y2 = cos(2*x); plot(x,y2) legend('cos(x)','cos(2x)')
データ系列を座標軸に追加したり削除した場合、凡例はそれに従って更新されます。作成中に DisplayName
プロパティを名前と値のペアとして設定し、新しいデータ系列のラベルを制御します。ラベルを指定しない場合、凡例には 'dataN'
形式のラベルが使用されます。
メモ: 座標軸にデータ系列を追加したり削除したときに凡例を自動的に更新しない場合は、凡例の AutoUpdate
プロパティを 'off'
に設定します。
y3 = cos(3*x); plot(x,y3,'DisplayName','cos(3x)') hold off
凡例を削除します。
legend('off')
特定の座標軸に凡例を追加
R2019b 以降、関数 tiledlayout
および nexttile
を使用して、プロットをタイル表示できます。関数 tiledlayout
を呼び出して、2 行 1 列のタイル表示チャート レイアウトを作成します。関数 nexttile
を呼び出して、axes オブジェクト ax1
および ax2
を作成します。乱数データを各座標軸にプロットします。ax1
を legend
の最初の入力引数として指定することで、上のプロットに凡例を追加します。
tiledlayout(2,1) y1 = rand(3); ax1 = nexttile; plot(y1) y2 = rand(5); ax2 = nexttile; plot(y2) legend(ax1,{'Line 1','Line 2','Line 3'})
プロット コマンド中に凡例ラベルを指定
2 本のラインをプロットします。DisplayName
プロパティを目的のテキストに設定してプロット コマンド中に凡例ラベルを指定します。次に、凡例を追加します。
x = linspace(0,pi); y1 = cos(x); plot(x,y1,'DisplayName','cos(x)') hold on y2 = cos(2*x); plot(x,y2,'DisplayName','cos(2x)') hold off legend
凡例からのラインの除外
凡例からラインを除外するには、そのラベルを空の文字ベクトルまたは string として指定します。たとえば、2 つの正弦波をプロットし、関数 yline
を呼び出して 0 の破線を追加します。次に、凡例を作成し、0 のラインのラベルとして ''
を指定してそのラインを除外します。
x = 0:0.2:10; plot(x,sin(x),x,sin(x+1)); hold on yline(0,'--') legend('sin(x)','sin(x+1)','')
列のエントリのリストおよび凡例の位置の指定
4 本のラインをプロットします。座標軸の北西領域に凡例を作成します。NumColumns
プロパティを使用して凡例の列数を指定します。
x = linspace(0,pi); y1 = cos(x); plot(x,y1) hold on y2 = cos(2*x); plot(x,y2) y3 = cos(3*x); plot(x,y3) y4 = cos(4*x); plot(x,y4) hold off legend({'cos(x)','cos(2x)','cos(3x)','cos(4x)'},... 'Location','northwest','NumColumns',2)
既定では、凡例の項目は各列に沿って上から下に並べられます。代わりに項目を各行に沿って左から右に並べるには、Orientation
プロパティを 'horizontal'
に設定します。
凡例項目の順序の反転
R2023b 以降
凡例の Direction
プロパティを設定して、凡例項目の順序を反転できます。たとえば、4 本のラインをプロットし、凡例を追加します。
plot([4 5 6 7; 0 1 2 3]) lgd = legend("First","Second","Third","Fourth");
凡例項目の順序を反転します。
lgd.Direction = "reverse";
タイル表示チャート レイアウトでの共有する凡例の表示
2 つ以上のプロット間で凡例を共有する場合は、レイアウトの個々のタイルに凡例を表示できます。凡例はタイルのグリッド内または外側のタイルに配置できます。
タイル表示チャート レイアウトで 3 つのプロットを作成します。
t = tiledlayout('flow','TileSpacing','compact'); nexttile plot(rand(5)) nexttile plot(rand(5)) nexttile plot(rand(5))
共有の凡例を追加し、それを 4 番目のタイルに移動します。
lgd = legend; lgd.Layout.Tile = 4;
次に、4 番目のプロットを追加して凡例を east タイルに移動します。
nexttile
plot(rand(5))
lgd.Layout.Tile = 'east';
凡例に含まれるグラフィックス オブジェクトのサブセット
プロットされたグラフィックス オブジェクトの一部を凡例に含めない場合は、含めるグラフィックス オブジェクトを指定できます。
3 本のラインをプロットし、作成された Line
オブジェクトを返します。2 本のラインのみを含む凡例を作成します。最初の入力引数を、含める Line
オブジェクトのベクトルとして指定します。
x = linspace(0,pi); y1 = cos(x); p1 = plot(x,y1); hold on y2 = cos(2*x); p2 = plot(x,y2); y3 = cos(3*x); p3 = plot(x,y3); hold off legend([p1 p3],{'First','Third'})
LaTeX マークアップを使用した凡例の作成
プロットを作成し、関数 legend
を呼び出して Interpreter
プロパティを 'latex'
に設定することで、LaTeX マークアップを使用して凡例を追加します。マークアップをドル記号 ($
) で囲みます。
x = 0:0.1:10; y = sin(x); dy = cos(x); plot(x,y,x,dy); legend('$sin(x)$','$\frac{d}{dx}sin(x)$','Interpreter','latex');
凡例へのタイトルの追加
2 本のラインをプロットし、凡例を作成します。その後、凡例にタイトルを追加します。
x = linspace(0,pi); y1 = cos(x); plot(x,y1) hold on y2 = cos(2*x); plot(x,y2) hold off lgd = legend('cos(x)','cos(2x)'); title(lgd,'My Legend Title')
凡例の背景を削除
2 本のラインをプロットし、座標軸の左下隅に凡例を作成します。次に、凡例の背景と外枠を削除します。
x = linspace(0,pi); y1 = cos(x); plot(x,y1) hold on y2 = cos(2*x); plot(x,y2) hold off legend({'cos(x)','cos(2x)'},'Location','southwest') legend('boxoff')
凡例のフォント サイズと色の指定
凡例の各種要素は、プロパティを設定することで変更できます。legend
の呼び出し時に名前と値の引数を指定してプロパティを設定するか、legend
の呼び出し後に Legend
オブジェクトのプロパティを設定できます。
ランダム データの 4 本のラインをプロットします。凡例を作成し、Legend
オブジェクトを変数 lgd
に代入します。名前と値の引数を使用して FontSize
プロパティと TextColor
プロパティを設定します。
rdm = rand(4); plot(rdm) lgd = legend({'Line 1','Line 2','Line 3','Line 4'},... 'FontSize',12,'TextColor','blue');
凡例の作成後に lgd
を参照して凡例を変更します。オブジェクト プロパティ名のドット表記を使用して NumColumns
プロパティを設定します。
lgd.NumColumns = 2;
入力引数
label1,...,labelN
— ラベル (個別の引数として指定)
文字ベクトル | 文字列
ラベル。文字ベクトルまたは string のコンマ区切りのリストとして指定します。
凡例から項目を除外するには、対応するラベルを空の文字ベクトルまたは string として指定します。
ラベルに特殊文字やギリシャ文字を含めるには、TeX または LaTeX マークアップを使用します。オプションの表については、Interpreter
プロパティを参照してください。
'Location'
や 'off'
など、キーワードであるラベルを指定するには、文字ベクトルの cell 配列、string 配列または文字配列を使用します。
例: legend('Sin Function','Cos Function')
例: legend("Sin Function","Cos Function")
例: legend("Sample A","","Sample C")
例: legend('\gamma','\sigma')
labels
— ラベル (配列として指定)
文字ベクトルの cell 配列 | string 配列 | categorical 配列
ラベル。文字ベクトルの cell 配列、string 配列または categorical 配列として指定します。
凡例から項目を除外するには、対応するラベルを cell 配列で空の文字ベクトルとして指定するか、string 配列で空の string として指定します。
ラベルに特殊文字やギリシャ文字を含めるには、TeX または LaTeX マークアップを使用します。オプションの表については、Interpreter
プロパティを参照してください。
例: legend({'Sin Function','Cos Function'})
例: legend(["Sin Function","Cos Function"])
例: legend({'Sample A','','Sample C'})
例: legend({'\gamma','\sigma'})
例: legend(categorical({'Alabama','New York'}))
subset
— 凡例に含めるデータ系列
グラフィックス オブジェクトのベクトル
凡例に含めるデータ系列。グラフィックス オブジェクトのベクトルとして指定します。
target
— 凡例のターゲット
Axes
オブジェクト | PolarAxes
オブジェクト | GeographicAxes
オブジェクト | スタンドアロンの可視化
凡例のターゲット。Axes
オブジェクト、PolarAxes
オブジェクト、GeographicAxes
オブジェクト、または LegendVisible
プロパティをもつスタンドアロンの可視化 (GeographicBubbleChart
オブジェクトなど) として指定します。ターゲットを指定しない場合、関数 legend
は gca
コマンドによりターゲットとして返されたオブジェクトを使用します。
スタンドアロンの可視化では、位置などの凡例の外観の変更や Legend
オブジェクトを出力引数として返すことはサポートされていません。
lcn
— 凡例の位置
'north'
| 'south'
| 'east'
| 'west'
| 'northeast'
| ...
座標軸に対する凡例の相対的な位置。次の表に挙げる位置の値のいずれかとして指定します。
値 | 説明 |
---|---|
'north' | 座標軸内の上部 |
'south' | 座標軸内の下部 |
'east' | 座標軸内の右側 |
'west' | 座標軸内の左側 |
'northeast' | 座標軸内の右上部 (2 次元座標軸の既定値) |
'northwest' | 座標軸内の左上部 |
'southeast' | 座標軸内の右下部 |
'southwest' | 座標軸内の左下部 |
'northoutside' | 座標軸外の上部 |
'southoutside' | 座標軸外の下部 |
'eastoutside' | 座標軸外の右側 |
'westoutside' | 座標軸外の左側 |
'northeastoutside' | 座標軸外の右上隅 (3 次元座標軸の既定値) |
'northwestoutside' | 座標軸外の左上隅 |
'southeastoutside' | 座標軸外の右下隅 |
'southwestoutside' | 座標軸外の左下隅 |
'best' | 凡例の作成時に座標軸内でプロット データへの干渉が最も少ない位置。プロットデータが変化した場合、位置を 'best' にリセットしなければならないことがあります。 |
'bestoutside' | 座標軸外の右上隅 (凡例が縦方向の場合) または座標軸の下 (凡例が横方向の場合) |
'layout' | タイル表示チャート レイアウト内のタイル。凡例を別のタイルに移動させるには、凡例の Layout プロパティを設定します。 |
'none' | Position プロパティに依存。Position プロパティを使用して凡例をカスタム位置に表示します。 |
例: legend('Location','northeastoutside')
ornt
— 向き
'vertical'
(既定値) | 'horizontal'
向き。次の値の 1 つとして指定します。
'vertical'
— 凡例の項目を垂直方向に重ねて表示します。'horizontal'
— 凡例の項目を横に並べて表示します。
例: legend('Orientation','horizontal')
bkgd
— 凡例ボックスの表示
'boxon'
(既定値) | 'boxoff'
凡例ボックスの表示。次の値のいずれかとして指定します。
'boxon'
— 凡例の背景と外枠を表示します。'boxoff'
— 凡例の背景と外枠を表示しません。
例: legend('boxoff')
vsbl
— 凡例の可視性
'hide'
| 'show'
| 'toggle'
凡例の可視性。次の値のいずれかとして指定します。
'hide'
— 凡例を非表示にします。'show'
— 凡例を表示します。凡例がない場合は凡例を作成します。'toggle'
— 凡例の表示/非表示を切り替えます。
例: legend('hide')
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: legend({'A','B'},'TextColor','blue','FontSize',12)
は、凡例を青の 12 ポイントのフォントで作成します。
メモ
ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Legend のプロパティ を参照してください。
TextColor
— テキストの色
[0 0 0]
(既定値) | RGB 3 成分 | 16 進数カラー コード | 'r'
| 'g'
| 'b'
| ...
テキストの色。RGB 3 成分、16 進数カラー コード、色名、または省略名として指定します。既定色は黒で、[0 0 0]
の値で指定されます。
カスタム色を使用する場合は、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" | 該当なし | 該当なし | 該当なし | 色なし |
MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。
RGB 3 成分 | 16 進数カラー コード | 外観 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
例: [0 0 1]
例: 'blue'
例: '#0000FF'
FontSize
— フォント サイズ
ゼロより大きいスカラー値
フォント サイズ。ポイント単位のゼロより大きいスカラー値として指定します。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。
座標軸のフォント サイズを変更すると、カラー バーのフォント サイズは MATLAB によって自動的に座標軸のフォント サイズの 90% に設定されます。カラー バーのフォント サイズを手動で設定した場合は、座標軸のフォント サイズを変更してもカラー バーのフォントは影響を受けません。
NumColumns
— 列数
1
(既定値) | 正の整数
列数。正の整数として指定します。指定された列数より凡例項目が少ない場合、表示される列数が少なくなることがあります。
各列または各行のいずれに沿って凡例項目を順番に表示するかを制御するには、Orientation
プロパティを使用します。
例: lgd.NumColumns = 3
出力引数
lgd
— Legend
オブジェクト
Legend
オブジェクト
Legend
オブジェクト。lgd
を使用して、凡例を作成した後にプロパティの表示や変更を行います。
plot(rand(3)) lgd = legend('line1','line2','line3'); lgd.FontSize = 12; lgd.FontWeight = 'bold';
ヒント
凡例内の 50 を超えるオブジェクトにラベルを付けるには、各オブジェクトにラベルを指定します。そうしないと、
legend
は最初の 50 個のオブジェクトのみをグラフに示します。
アルゴリズム
関数
legend
を再呼び出ししても凡例のプロパティ (位置や向きなど) はリセットされません。凡例が存在する場合、関数legend
は既存の凡例を更新します。Axes
オブジェクトに設定できる凡例は 1 つだけです。凡例には、座標軸内のグラフィックス オブジェクトの可視性が反映されます。
Visible
プロパティが'off'
に設定されているグラフィックス オブジェクトは、凡例においてグレー表示の項目として表示されます。
バージョン履歴
R2006a より前に導入R2023b: 積み上げ型の棒グラフと面グラフで凡例の順序が反転
積み上げ型 (垂直) の棒グラフと面グラフの凡例項目の既定の順序が、グラフの重なり順序と一致するように反転されました。以前は、積み上げ型の棒グラフと面グラフの順序とは逆の順序で凡例項目が表示されていました。
以前のリリースの順序を維持するには、凡例の Direction
プロパティを "normal"
に設定します。
R2022b: line オブジェクトまたはその他のプロット オブジェクト削除時の凡例の更新
line オブジェクトや scatter オブジェクトなどのオブジェクトを座標軸から削除すると、AutoUpdate
プロパティが "on"
または "off"
に設定されているかどうかに関係なく、変更内容を反映して凡例が更新されます。
以前は、AutoUpdate
プロパティが "off"
に設定されている場合は、座標軸からオブジェクトを削除しても凡例は更新されませんでした。
R2021a: 関数 legend
に空のラベルを渡すことで凡例からエントリを除外
関数 legend
を呼び出して、ラベルを空の文字ベクトル、空の string、または cell 配列か string 配列の空の要素として指定すると、対応するエントリが凡例から除外されます。R2020b 以前のリリースでは、エントリは凡例にラベルなしで表示されます。
たとえば、次のコードは 2 つの正弦波をプロットし、y=0
の位置に基準線をプロットします。次に、3 つのラベルがある凡例を作成します。ここで、最後のラベルは空です。R2020b では、3 番目のラインは凡例にラベルなしで表示されます。R2021a では、3 番目のラインは凡例から除外されます。
x = 0:0.2:10; plot(x,sin(x),x,sin(x+1)); hold on yline(0,'--') legend('sin(x)','sin(x+1)','')
エントリを凡例にラベルなしで保持するには、ラベルに空白文字を含めます。たとえば、上記のコードを更新するには、最後のラベルを空白 (' '
) が含まれる文字ベクトルとして指定します。
legend('sin(x)','sin(x+1)',' ')
あるいは、空白文字を表示しないようにするには、ラベルの配列を指定して個々の line オブジェクトを関数 legend
に渡します。個々の line オブジェクトを取得するには、出力引数を指定して各プロット関数を呼び出します。
x = 0:0.2:10; p = plot(x,sin(x),x,sin(x+1)); hold on line0 = yline(0,'--'); legend([p(1) p(2) line0], {'sin(x)','sin(x+1)',''});
R2018b: legend
はプロパティが存在する場合に引数をプロパティ名として解釈
R2018b から、凡例のプロパティ名と一致する引数を関数 legend
に渡す場合、関数は引数を名前と値のペアの名前として解釈します。以前のリリースでは、関数 legend
は、1 番目の引数が cell 配列の場合にのみ名前と値のペアとして認識していました。
この変更の結果として、ほとんどの場合、名前と値のペアを使用する際に 1 番目の引数を cell 配列として指定する必要がなくなりました。ただし、Position
または NumColumns
など、凡例のプロパティ名と一致する凡例のラベルにする場合、すべてのラベルを cell 配列で指定 "しなければなりません"。そうしなかった場合、関数 legend
は引数を、ラベルではなく名前と値のペアとして解釈します。
説明 | 推奨コード |
---|---|
|
legend({'Label1','NumColumns','Label3','Label4'},'NumColumns',2) |
いずれのラベルも凡例のプロパティ名と一致しない場合、ラベルに cell 配列を使用する必要はありません。 | legend('Label1','Label2','Label2') |
R2017b: legend
は座標軸が存在しない場合に座標軸を作成
R2017b 以降、座標軸が存在しない場合、関数 legend
は座標軸を作成します。
R2017a: データの追加時または削除時に凡例が自動更新
R2017a 以降、座標軸でデータ系列を追加または削除すると凡例が自動的に更新されるようになりました。凡例が自動的に更新されないようにするには、凡例の AutoUpdate
プロパティを 'off'
に設定します。
lgd = legend; lgd.AutoUpdate = 'off';
R2014b: 複数の出力を返すことは推奨されない
次の構文により複数の出力を返すことは推奨されなくなりました。
[lgd,icons,plots,txt] = legend(__)
この構文で作成される凡例では、R2014b 以降で導入された一部の機能がサポートされません。たとえば、タイトルを凡例に追加したり、凡例の列数を指定したりすることができません。また、この凡例は座標軸でデータ系列を追加または削除しても自動的には更新されません。
その代わりに、Legend
オブジェクトを返し、Legend のプロパティ を設定します。
lgd = legend(__)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)