Main Content

legend

座標軸への凡例の追加

説明

legend は、プロットされたデータ系列ごとに説明ラベルがある凡例を作成します。ラベルについては、凡例ではデータ系列の DisplayName プロパティのテキストが使用されます。DisplayName プロパティが空の場合、凡例では 'dataN' 形式のラベルが使用されます。この凡例は、座標軸でデータ系列を追加または削除すると自動的に更新されます。このコマンドは gca コマンドにより返される現在の座標軸の凡例を作成します。現在の座標軸が空の場合、凡例も空になります。座標軸が存在しない場合、legend は直交座標軸を作成します。

legend(label1,...,labelN) は凡例のラベルを設定します。ラベルを legend('Jan','Feb','Mar') などの文字ベクトルまたは string のリストとして指定します。

legend(labels) は文字ベクトルの cell 配列、string 配列または文字行列を使用してラベルを設定します (たとえば legend({'Jan','Feb','Mar'}))。

legend(subset,___) には subset にリストされたデータ系列に対する凡例の項目のみが含まれます。subset をグラフィックス オブジェクトのベクトルとして指定します。subset は、ラベルを指定する前に指定することも、他の入力引数がない状態で指定することもできます。

legend(target,___) は、現在の座標軸の代わりに target で指定される座標軸またはスタンドアロンの可視化を使用します。ターゲットを最初の入力引数として指定します。

legend(___,'Location',lcn) は凡例の位置を設定します。たとえば、'Location','northeast' は座標軸の右上隅に凡例を配置します。位置は、他の入力引数の後に指定します。

legend(___,'Orientation',ornt) (ornt'horizontal' の場合) は凡例項目を横に並べて表示します。ornt の既定は 'vertical' で、項目を縦に並べます。

legend(___,Name,Value) は、名前と値のペア引数を 1 つ以上使用して、凡例プロパティを設定します。

legend(bkgd) は、bkgd'boxoff' の場合は凡例の背景と外枠を削除します。bkgd の既定は 'boxon' で、凡例の背景と外枠を表示します。

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

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

データ系列を座標軸に追加したり削除した場合、凡例はそれに従って更新されます。作成中に DisplayName プロパティを名前と値のペアとして設定し、新しいデータ系列のラベルを制御します。ラベルを指定しない場合、凡例には 'dataN' 形式のラベルが使用されます。

メモ: 座標軸にデータ系列を追加したり削除したときに凡例を自動的に更新しない場合は、凡例の AutoUpdate プロパティを 'off' に設定します。

y3 = cos(3*x);
plot(x,y3,'DisplayName','cos(3x)')
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent cos(x), cos(2x), cos(3x).

凡例を削除します。

legend('off')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent cos(x), cos(2x), cos(3x).

R2019b 以降、関数 tiledlayout および nexttile を使用して、プロットをタイル表示できます。関数 tiledlayout を呼び出して、2 行 1 列のタイル表示チャート レイアウトを作成します。関数 nexttile を呼び出して、axes オブジェクト ax1 および ax2 を作成します。乱数データを各座標軸にプロットします。ax1legend の最初の入力引数として指定することで、上のプロットに凡例を追加します。

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'})

Figure contains 2 axes objects. Axes object 1 contains 3 objects of type line. These objects represent Line 1, Line 2, Line 3. Axes object 2 contains 5 objects of type line.

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

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

凡例からラインを除外するには、そのラベルを空の文字ベクトルまたは 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)','')

Figure contains an axes object. The axes object contains 3 objects of type line, constantline. These objects represent 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)

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent cos(x), cos(2x), cos(3x), cos(4x).

既定では、凡例の項目は各列に沿って上から下に並べられます。代わりに項目を各行に沿って左から右に並べるには、Orientation プロパティを 'horizontal' に設定します。

R2023b 以降

凡例の Direction プロパティを設定して、凡例項目の順序を反転できます。たとえば、4 本のラインをプロットし、凡例を追加します。

plot([4 5 6 7; 0 1 2 3])
lgd = legend("First","Second","Third","Fourth");

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent First, Second, Third, Fourth.

凡例項目の順序を反転します。

lgd.Direction = "reverse";

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent First, Second, Third, Fourth.

2 つ以上のプロット間で凡例を共有する場合は、レイアウトの個々のタイルに凡例を表示できます。凡例はタイルのグリッド内または外側のタイルに配置できます。

タイル表示チャート レイアウトで 3 つのプロットを作成します。

t = tiledlayout('flow','TileSpacing','compact');
nexttile
plot(rand(5))
nexttile
plot(rand(5))
nexttile
plot(rand(5))

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

共有の凡例を追加し、それを 4 番目のタイルに移動します。

lgd = legend;
lgd.Layout.Tile = 4;

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

次に、4 番目のプロットを追加して凡例を east タイルに移動します。

nexttile
plot(rand(5))
lgd.Layout.Tile = 'east';

Figure contains 4 axes objects. Axes object 1 contains 5 objects of type line. Axes object 2 contains 5 objects of type line. Axes object 3 contains 5 objects of type line. Axes object 4 contains 5 objects of type line.

プロットされたグラフィックス オブジェクトの一部を凡例に含めない場合は、含めるグラフィックス オブジェクトを指定できます。

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'})

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent First, Third.

プロットを作成し、関数 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');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent $sin(x)$, $\frac{d}{dx}sin(x)$.

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

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

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

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent cos(x), cos(2x).

凡例の各種要素は、プロパティを設定することで変更できます。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');

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Line 1, Line 2, Line 3, Line 4.

凡例の作成後に lgd を参照して凡例を変更します。オブジェクト プロパティ名のドット表記を使用して NumColumns プロパティを設定します。

lgd.NumColumns = 2;

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Line 1, Line 2, Line 3, Line 4.

入力引数

すべて折りたたむ

ラベル。文字ベクトルまたは 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')

ラベル。文字ベクトルの 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'}))

凡例に含めるデータ系列。グラフィックス オブジェクトのベクトルとして指定します。

凡例のターゲット。Axes オブジェクト、PolarAxes オブジェクト、GeographicAxes オブジェクト、または LegendVisible プロパティをもつスタンドアロンの可視化 (GeographicBubbleChart オブジェクトなど) として指定します。ターゲットを指定しない場合、関数 legendgca コマンドによりターゲットとして返されたオブジェクトを使用します。

スタンドアロンの可視化では、位置などの凡例の外観の変更や Legend オブジェクトを出力引数として返すことはサポートされていません。

座標軸に対する凡例の相対的な位置。次の表に挙げる位置の値のいずれかとして指定します。

説明
'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')

向き。次の値の 1 つとして指定します。

  • 'vertical' — 凡例の項目を垂直方向に重ねて表示します。

  • 'horizontal' — 凡例の項目を横に並べて表示します。

例: legend('Orientation','horizontal')

凡例ボックスの表示。次の値のいずれかとして指定します。

  • 'boxon' — 凡例の背景と外枠を表示します。

  • 'boxoff' — 凡例の背景と外枠を表示しません。

例: legend('boxoff')

凡例の可視性。次の値のいずれかとして指定します。

  • 'hide' — 凡例を非表示にします。

  • 'show' — 凡例を表示します。凡例がない場合は凡例を作成します。

  • 'toggle' — 凡例の表示/非表示を切り替えます。

例: legend('hide')

名前と値の引数

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

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

例: legend({'A','B'},'TextColor','blue','FontSize',12) は、凡例を青の 12 ポイントのフォントで作成します。

メモ

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

テキストの色。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"

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

例: [0 0 1]

例: 'blue'

例: '#0000FF'

フォント サイズ。ポイント単位のゼロより大きいスカラー値として指定します。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。

座標軸のフォント サイズを変更すると、カラー バーのフォント サイズは MATLAB によって自動的に座標軸のフォント サイズの 90% に設定されます。カラー バーのフォント サイズを手動で設定した場合は、座標軸のフォント サイズを変更してもカラー バーのフォントは影響を受けません。

列数。正の整数として指定します。指定された列数より凡例項目が少ない場合、表示される列数が少なくなることがあります。

各列または各行のいずれに沿って凡例項目を順番に表示するかを制御するには、Orientation プロパティを使用します。

例: lgd.NumColumns = 3

出力引数

すべて折りたたむ

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 より前に導入

すべて展開する