ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

legend

ラインとパッチのグラフの凡例

構文

legend('string1','string2',...)
legend(h,'string1','string2',...)
legend(M)
legend(h,M)
legend(M,'parameter_name','parameter_value',...)
legend(h,M,'parameter_name','parameter_value',...)
legend(axes_handle,...)
legend('off'),legend(axes_handle,'off')
legend('toggle'),legend(axes_handle,'toggle')
legend('hide'),legend(axes_handle,'hide')
legend('show'),legend(axes_handle,'show')
legend('boxoff'),legend(axes_handle,'boxoff')
legend('boxon'),legend(axes_handle,'boxon')
legend_handle = legend(...)
legend(...,'Location','location')
legend(...,'Orientation','orientation')
[legend_h,object_h,plot_h,text_strings] = legend(...)

説明

関数 legend は、さまざまなタイプのグラフ (ライン プロット、棒グラフ、円グラフなど) に凡例を配置します。プロットした各ラインに対して、凡例のライン タイプ、マーカー記号、ユーザーが指定したテキスト ラベルの色のサンプルを示します。塗りつぶされた領域 (パッチまたは表面オブジェクト) をプロットする場合、凡例はテキスト ラベルの隣に面の色のサンプルを含みます。

凡例の文字列のフォント サイズとフォント名は、座標軸の FontSizeFontName プロパティに一致します。

legend('string1','string2',...) は、各データセットのラベルに指定した文字列を使用して、現在の Axes に凡例を表示します。

legend(h,'string1','string2',...) は、ベクトル h のハンドルで識別されるオブジェクトをもつプロットに凡例を表示します。そして、指定された文字列を使用して、対応するグラフィックス オブジェクト (ライン、バーなど) にラベルを付けます。

legend(M) は、文字列の行列、または、文字列のセル配列 M の行をラベルにもつ凡例を追加します。行列では、legend(M(1,:),M(2,:),...) と同じです。

legend(h,M) は、文字列の行列、または文字列のセル配列 M の各行を、ハンドル h のベクトルの対応するグラフィックス オブジェクト (パッチまたはライン) に関連付けます。

legend(M,'parameter_name','parameter_value',...)legend(h,M,'parameter_name','parameter_value',...) は、凡例を作成するときに、パラメーターと値のペアを設定できます (set またはプロパティ エディターやプロパティ インスペクターを使用して値を割り当てることもできます)。M は名前のセル配列でなければなりません。凡例は Axes のプロパティを継承しますが、Axes のすべてのプロパティが凡例オブジェクトに関連はしていません。

legend(axes_handle,...) は、axes_handle で指定された座標軸に凡例を表示します。

legend('off'),legend(axes_handle,'off') は、現在の座標軸または axes_handle によって指定された座標軸から凡例を消去します。

legend('toggle'),legend(axes_handle,'toggle') は、凡例の表示/非表示を切り替えます。凡例が存在しない場合は、既定の文字列を使用して 1 つの凡例が作成されます。凡例が存在する場合に状態を非表示に切り替えても、凡例は消去されません。

オブジェクトに対して、DisplayName プロパティの値を定義した場合、"既定の文字列" は、オブジェクトの DisplayName プロパティの値です (これは、プロパティ エディターの使用または関数 set の呼び出しで定義できます)。そうでない場合は、関数 legend は、data1data2 などの形式で文字列を作成します。表示名の設定は、たとえば各ラインのオブジェクトの順番を忘れてしまう可能性がある場合など、凡例を使用する際に便利です。

legend コマンドで凡例の文字列を定義する場合、各 DisplayName は、これらの文字列に設定されます。凡例を削除し、新しい凡例をラベルを指定せずに作成する場合は、DisplayName の値がラベル名として使用されます。関連するプロット オブジェクトは、このようなことが起こった場合の DisplayName プロパティをもつ必要があります。すべての _series および _group プロット オブジェクトは DisplayName プロパティをもちます。linepatch などの Handle Graphics® プリミティブはこのプロパティをもちません。

グラフの凡例は、plotbarcontour などの関数の高水準のプロット コマンドによって作成された lineseries、barseries、contourgroups のようなオブジェクト グループがある場合、含まれているメンバー オブジェクトの数に関係なく、既定でグループ全体に 1 つの凡例を表示します。ただし、このような凡例をカスタマイズして、すべてのメンバー オブジェクトまたは選択したメンバー オブジェクトに個別のエントリを表示し、固有の DisplayName を割り当てることができます。凡例に表示するグループ数は、コードで Annotation および DisplayName プロパティの値を設定することで、制御できます。この方法でカスタマイズする凡例の詳細と例については、『MATLAB® グラフィックス』ドキュメンテーションの「凡例のコントロール」を参照してください。

EdgeColorTextColor は、RGB 三原色または ColorSpecs として指定できます。これらの色を 'none' に設定することはできません。凡例を覆うボックスを隠すには、Box プロパティを 'off' に設定します。凡例ボックスを透明な背景で表示するには、凡例の Color プロパティを 'none' に設定します。たとえば、以下のようになります。

set(legend_handle, 'Box', 'off')
set(legend_handle, 'Color', 'none')

これは、boxoff が背景との境界も隠すことを除くと、legend boxoff コマンドの効果と同様です。

それぞれのプロパティにループ処理を行わなくても、凡例のハンドルを使用することで、一度に凡例のすべての文字列にセル配列でテキスト プロパティを設定できます。以下の例の最後の行を参照してください。凡例の Interpreter プロパティの設定を行っています。この例では、凡例の String プロパティを以下のように再設定できます。

set(h,'String',{'cos(x)','sin(x)'})

詳細は、「Text Properties」のドキュメンテーションを参照してください。

legend('hide'),legend(axes_handle,'hide') は、現在の座標軸または axes_handle によって指定された座標軸の凡例を非表示にします。

legend('show'),legend(axes_handle,'show') は、現在の座標軸または axes_handle によって指定された座標軸の凡例を表示します。凡例は、以前に作成した凡例がない場合に作成されます。自動的に作成された凡例に示されるのはプロットの最初の 20 行に限定されます。20 行を超えるエントリが必要な場合、legend('string1','string2',...) 構文を使用してエントリの凡例を手動で作成できます。

legend('boxoff'),legend(axes_handle,'boxoff') は、現在の座標軸または axes_handle によって指定された座標軸から凡例を消去し、その背景を透明にします。

legend('boxon'),legend(axes_handle,'boxon') は、現在の座標軸または axes_handle によって指定された座標軸の、背景があいまいな凡例にボックスを表示します。

上記の 6 つのコマンドは、構文を使用しても入力することができます。

legend keyword

キーワードが認識されない場合は、凡例のテキストにキーワードが使用され、凡例を作成したり、現在の凡例を置き換えたりします。

legend_handle = legend(...) は、現在の座標軸の凡例のハンドルを返します。凡例が存在しない場合は、[] を返します。

legend(...,'Location','location') は、location を使用して凡例の配置場所を定義します。location には、1 行 4 列の位置ベクトル ([left,bottom,width,height]) または以下の文字列のいずれかを使用できます。

指定子座標軸の位置

North

プロット ボックス内の上側

South

プロット ボックス内の下側

East

プロット ボックス内の右側

West

プロット ボックス内の左側

NorthEast

プロット ボックス内の右上側 (2 次元プロットの既定の設定)

NorthWest

プロット ボックス内の左上側

SouthEast

プロット ボックス内の右下側

SouthWest

プロット ボックス内の左下側

NorthOutside

プロット ボックス外の上側

SouthOutside

プロット ボックス外の下側

EastOutside

プロット ボックス外の右側

WestOutside

プロット ボックス外の左側

NorthEastOutside

プロット ボックス外の右上側 (3 次元プロットの既定の設定)

NorthWestOutside

プロット ボックス外の左上側

SouthEastOutside

プロット ボックス外の右下側

SouthWestOutside

プロット ボックス外の左下側

Best

プロット ボックス内でデータとの接触が最も回避できる場所

BestOutside

プロット ボックス外で最も使用されていない場所

'Location' に対して ...Outside の値を使用する場合は、凡例がプロットに重ならないようにしてください。一方で他の基本的な値を指定した場合、プロットに重なることがあります。location プロパティは、カラーバーと凡例に適用されますが、座標軸には適用されません。

    メモ:   凡例の位置を設定するには、‘Location’ オプションを使用して 4 要素の位置ベクトルを関数 legend に渡します。既存の凡例の位置を定義するには、関数 set を使用して、4 要素の位置ベクトルを ‘Position’ プロパティに割り当てます。Location オプションと関数 set を同時に使用することはできません。

旧式の Location 値

次の表の最初の列は、現在旧式となった凡例の位置の指定子を示します。この指定子は、Version 7 以前では、位置の記述や現在利用できる構文と共に使用されていました。

    メモ:   これらの数値指定子のサポートは、将来のリリースでは削除される予定です。代わりとして、サポートされている文字列指定子を使用してください。

旧式の指定子座標軸の位置現在の指定子

-1

座標軸外の右側

NorthEastOutside

0

座標軸内

Best

1

座標軸の右上隅

NorthEast

2

座標軸の左上隅

NorthWest

3

座標軸の左下隅

SouthWest

4

座標軸の右下隅

SouthEast

legend(...,'Orientation','orientation') は、凡例と凡例のアイテムを作成し、指定された方向に配置します。orientation は、vertical (既定の設定) または horizontal になります。

[legend_h,object_h,plot_h,text_strings] = legend(...) は、以下を返します。

  • legend_h — 凡例の座標軸のハンドル

  • 凡例内で使用される object_hlinepatchtext のグラフィックス オブジェクトのハンドル

  • plot_h — プロット内で使用されるラインと他のオブジェクトのハンドル

  • text_strings — 凡例内で使用されるテキスト文字列のセル配列

Axes との関係

legend は、Axes の Children プロパティのリストと同じ順番で、Axes 内のオブジェクトに文字列を関連付けます。既定の設定では、凡例は現在の Axes に注釈を付けます。

1 つの Axes に付き、1 つの凡例のみを表示します。関数 legend は、凡例を覆うオブジェクトなどのようにさまざまな因子に基づいて凡例を配置します。

凡例が座標軸と共有しないプロパティは、以下になります。

  • Location

  • Orientation

  • EdgeColor

  • TextColor

  • Interpreter

  • String

ヒント

キーワードを凡例のラベルとして使用する

'Location'‘Orientation’‘Off’’Hide’、プロパティ名などの凡例のキーワードを凡例のラベルとして使用するには、次のようにセル配列内の文字列を関数 legend に渡します。

l = legend({'Location'});

正弦関数と余弦関数のグラフに凡例を追加します。既定の場所は軸内の右上です。

figure
x = -pi:pi/20:pi;
plot(x,cos(x),'-ro',x,sin(x),'-.b')
hleg1 = legend('cos_x','sin_x');

この凡例では、plot は余弦関数に赤色の実線 ('-ro') を指定し、正弦関数に青色の鎖線 ('-.b') を指定します。

凡例を更新します。返された凡例ハンドル hleg1 を使用して、凡例を左上に移動します。また、TeX インタープリターを無効にして、凡例のテキストのアンダースコアを添字としてではなく文字どおりに表示します。

    set(hleg1,'Location','NorthWest')
    set(hleg1,'Interpreter','none')

 

凡例の位置を特定の位置に設定します。

set(hleg1, 'Position', [.1,.2,.1,.2]);

 

besselj を使用して、次数 1、2、および 3 のベッセル関数をプロットします。右上の軸の外に、ラインの凡例を追加します。

figure
x = 0:.2:12;
plot(x,besselj(1,x),x,besselj(2,x),x,besselj(3,x));
hleg = legend('First','Second','Third',...
              'Location','NorthEastOutside')
% Make the text of the legend italic and color it brown
set(hleg,'FontAngle','italic','TextColor',[.3,.2,.1])

 

棒グラフを作成し、hold on を設定してその上にライン プロットを重ねます。両方のグラフを対象とする凡例を作成し、右下の軸の外に配置します。

figure
stream = RandStream('mrg32k3a','Seed',4);
y1 = rand(stream,10,5);
hb = bar(y1,'stacked'); colormap(summer); hold on
y2 = rand(stream,10,1);
hp = plot(1:10,y2,'marker','square','markersize',12,...
       'markeredgecolor','y','markerfacecolor',[.6,0,.6],...
       'linestyle','-','color','r','linewidth',2); hold off
legend([hb,hp],'Carrots','Peas','Peppers','Green Beans',...
        'Cucumbers','Eggplant','Location','SouthEastOutside')

代替方法

Figure のツール バーの [凡例の挿入] ツール または Figure メニューの [挿入]、[凡例] を使用して、選択されているグラフ上の軸に凡例を追加します。凡例のポジション、フォント、その他のプロパティを修正するには、プロパティ エディターを使用します。詳細は、「プロット編集モードの使用」を参照してください。

凡例の移動

カーソルが凡例上にあるときに、左マウス ボタンをクリックし、他の場所に凡例をドラッグして、凡例を移動します。ラベルをダブルクリックすると、ラベルを編集できます。

参考

| |

この情報は役に立ちましたか?