MATLAB で凡例のタイトルを変更する

Ammar Ali 2022年1月20日
MATLAB で凡例のタイトルを変更する

このチュートリアルでは、Matlab の title() 関数を使用して凡例のタイトルを変更する方法について説明します。

MATLAB の title() 関数を使用して凡例のタイトルを変更する

MATLAB では、legend() 関数を使用してプロットに凡例を追加できます。デフォルトでは凡例にタイトルはありませんが、Matlab の title() 関数を使用して追加できます。legend() 関数を使用して凡例オブジェクトを作成し、title() 関数内でこのオブジェクトを使用して凡例のタイトルを設定する必要があります。たとえば、title() 関数を使用して、プロットの凡例にタイトルを追加しましょう。以下のコードを参照してください。

clc
x = 10:0.1:20;
y = sin(x);
plot(x,y)
leg = legend('legend 1');
title(leg,'my title')

出力:

Matlab の凡例にタイトルを追加

プロットの凡例の上にタイトルがあり、title() 関数を使用して変更できます。legend() 関数から 2つの出力を取得すると、タイトルは 1つの出力ではなく、プロットから消えます。たとえば、legend() 関数に 2 番目の出力を追加して、凡例のタイトルがどうなるかを見てみましょう。以下のコードを参照してください。

clc
x = 10:0.1:20;
y = sin(x);
plot(x,y)
[leg,att] = legend('legend 1');
title(leg,'My Title')

出力:

Matlab で複数の出力を使用して凡例にタイトルを追加

出力では、2 番目の出力のため、タイトルはプロットに表示されません。この問題を解決するには、タイトルの Visible プロパティを設定して、タイトルをプロットに表示する必要があります。タイトルの可視性を設定すると、プロットに表示されますが、凡例の上には表示されません。この問題を解決するには、Position プロパティを使用してタイトルの位置を設定する必要があります。タイトルをより見やすくするために、Location プロパティを使用して凡例の場所を設定できます。たとえば、上の図のタイトルを修正してみましょう。以下のコードを参照してください。

clc
x = 10:0.1:20;
y = sin(x);
plot(x,y)
[leg,att] = legend('legend 1');
title(leg,'My Title')
leg.Title.Visible = 'on';
leg.Title.NodeChildren.Position = [0.5 1.6 0];
leg.Location = 'east';

出力:

Matlab で複数の出力を使用して凡例にタイトルを追加

出力では、タイトルが再びプロットに表示されます。Color および FontSize プロパティを使用して、色やフォントサイズなどの他のタイトルプロパティを設定することもできます。text() 関数を使用して、凡例にタイトルを追加することもできます。テキストを配置する文字列とともに x 座標と y 座標を渡す必要があります。プロットから座標を選択し、text() 関数を使用して、選択した座標にテキストを配置できます。プロット上にない座標を指定すると、テキストは表示されません。FontSize プロパティと Color プロパティなどを使用して色を変更することもできます。たとえば、フォントサイズ 16 と緑色の凡例の上にタイトルを配置しましょう。以下のコードを参照してください。

clc
x = 10:0.1:20;
y = sin(x);
plot(x,y)
legend('legend 1','Location','east');
text(17.5,0.2,'My Title','FontSize',16,'Color','green')

出力:

Matlab の text()関数を使用して凡例にタイトルを追加する

出力では、タイトルは x 座標と y 座標を使用して凡例の上に配置されます。text() 関数内の最初の 2つの引数は、プロット上の文字列の位置を設定するために使用される x 座標と y 座標です。

著者: 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