MATLAB カスタム凡例

Ammar Ali 2023年1月30日
  1. MATLAB で legend() 関数を使用してカスタム凡例を追加する
  2. MATLAB で text() 関数を使用してカスタム凡例を追加する
MATLAB カスタム凡例

このチュートリアルでは、MATLAB の legend() および text() 関数を使用して、カスタム凡例をプロットに追加する方法について説明します。

MATLAB で legend() 関数を使用してカスタム凡例を追加する

legend() 関数は、MATLAB のプロットに凡例を追加するために使用されます。しかし、問題は、1つのプロットに 1つの凡例しか追加されないことです。この関数を使用して複数の凡例を追加しようとすると、MATLAB はエラーを出します。したがって、グラフとは関係のないカスタム凡例を追加するには、未定義の値を使用して図にプロットを追加する必要があります。その後、凡例を追加できます。値が定義されていないため、プロットは表示されませんが、凡例は表示されます。たとえば、コサイン波のプロットにカスタムの凡例を追加しましょう。以下のコードを参照してください。

t = 1:0.01:2;
plot(cos(2*pi*t))
hold on
p(1) = plot(NaN,NaN);
p(2) = plot(NaN,NaN);
p(3) = plot(NaN,NaN);
hold off
legend(p,'Cos1','Cos2','Cos3')

出力:

matlab で legend()関数を使用するカスタム凡例

上記のコードでは、コサイン波プロットに 3つの凡例を追加しましたが、それらはプロットに関連していないことがわかります。フィギュアには必要な数の凡例を追加できます。同じ図に未定義の値を持つプロットを追加する必要があります。legend() 関数の詳細については、このリンクを確認してください。

MATLAB で text() 関数を使用してカスタム凡例を追加する

text() 関数を使用して、プロットにテキストを追加することもできます。テキストを配置する x 座標と y 座標を渡す必要があります。変数をプロットし、プロットから座標を選択してから、text() 関数を使用して、選択した座標にテキストを配置するだけです。プロット上にない座標を指定すると、テキストを表示できなくなります。FontSize プロパティを使用してフォントサイズや Color プロパティを使用して色などのテキストのプロパティを変更することもできます。例えば、コサイン波をプロットし、その上にフォントサイズ 18、色は赤でテキストを配置してみましょう。以下のコードを参照してください。

t = 1:0.01:2;
plot(cos(2*pi*t))
t = text(100,0.8,'Cos1','FontSize',18,'Color','r')

出力:

Matlab の text()関数を使用したカスタム凡例

次に、テキストの前に青い線を追加し、テキストと行の周りに黒いボックスを追加しましょう。以下のコードを参照してください。

t = 1:0.01:2;
plot(cos(2*pi*t))
tex = text(95,0.8,'{\color{blue} ---} Cos','FontSize',18,'Color','k','EdgeColor','k')

出力:

Matlab の text()関数を使用したカスタム凡例

セル内の行の前に線を定義し、テキストを Color プロパティを使用して、ボックスを EdgeColor プロパティを使用して定義することにより、線に希望の色を付けることができます。プロットの複数の位置に、異なるテキスト、線のスタイル、色、サイズ、およびボックスを使用して複数のテキストを追加することもできます。たとえば、上のグラフに、赤い色の Cosine テキスト、緑色の*マーカー、黄色のボックス、18 のフォントサイズのテキストをもう 1つ追加しましょう。以下のコードを参照してください。

t = 1:0.01:2;
plot(cos(2*pi*t))
tex1 = text(95,0.8,'{\color{blue} ---} Cos','FontSize',18,'Color','k','EdgeColor','k')
tex2 = text(89,0.4,'{\color{red} *} Cosine','FontSize',18,'Color','g','EdgeColor','y')

出力:

Matlab の text()関数を使用したカスタム凡例

文字列のセル配列を作成して、同じボックスに複数の文字列を配置することもできます。text() 関数の詳細については、このリンクを確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - MATLAB Plot