Matlab中legend函数使用

目录

语法

说明

例子

1.在当前坐标区上添加图例

2.在特定坐标区上添加图例

3.在执行绘图命令的过程中指定图例标签

4.图例位置和列数

5.在分块图布局中显示共享图例

6.在图例中包含部分图形对象

7.为图例添加标题

8.删除图例背景

9.修改图例外观

         legend函数是在坐标区上添加图例。

语法

legend
legend(label1,...,labelN)
legend(labels)
legend(subset,___)
legend(target,___)
legend(___,'Location',lcn)
legend(___,'Orientation',ornt)
legend(___,Name,Value)
legend(bkgd)
lgd = legend(___)
legend(vsbl)
legend('off')

说明

   legend 为每个绘制的数据序列创建一个带有描述性标签的图例。对于标签,图例使用数据序列的 DisplayName 属性中的文本。如果 DisplayName 属性为空,则图例使用 'dataN' 形式的标签。当在坐标区上添加或删除数据序列时,图例会自动更新。此命令为 gca 返回的当前坐标区或图形创建图例。如果当前坐标区为空,则图例为空。如果坐标区不存在,此命令将创建坐标区。

legend(label1,...labelN) 设置图例标签。以字符向量或字符串列表形式指定标签,例如 legend('Jan','Feb','Mar')

   legend(labels) 使用字符向量元胞数组、字符串数组或字符矩阵设置标签,例如 legend({'Jan','Feb','Mar'})

   legend(subset,___) 仅在图例中包括 subset 中列出的数据序列的项。subset 以图形对象向量的形式指定。您可以在指定标签之前或不指定其他输入参数的情况下指定 subset

   legend(target,___) 使用由 target 指定的坐标区或图,而不是当前坐标区或图。指定 target 作为第一个输入参数。

   legend(___,'Location',lcn) 设置图例位置。例如,'Location','northeast' 将在坐标区的右上角放置图例。请在其他输入参数之后指定位置。

   legend(___,'Orientation',ornt)(其中 ornt 为 'horizontal')并排显示图例项。ornt 的默认值为 'vertical',即垂直堆叠图例项。

   legend(___,Name,Value) 使用一个或多个名称-值对组参数来设置图例属性。

   legend(bkgd)(其中 bkgd 为 'boxoff')删除图例背景和轮廓。bkgd 的默认值为 'boxon',即显示图例背景和轮廓。

   lgd = legend(___) 返回 Legend 对象。可使用 lgd 在创建图例后查询和设置图例属性。有关属性列表,可参考legend属性

   legend(vsb1) 控制图例的可见性,其中 vsbl 为 'hide''show' 或 'toggle'

   legend('off') 删除图例。

例子

1.在当前坐标区上添加图例

        绘制两个线条并在当前坐标区上添加一个图例。将图例标签指定为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)')

        如图所示:

Matlab中legend函数使用

        如果在坐标区添加或删除数据序列,图例会相应地更新。创建数据序列时,可通过将 DisplayName 属性设置为名称-值对组来控制新数据序列的标签。如果不指定标签,则图例使用 'dataN' 形式的标签。

        注意:如果您不希望在坐标区中添加或删除数据序列时自动更新图例,可将图例的 AutoUpdate 属性设置为 'off'

x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)

hold on 
y2 = cos(2*x);
plot(x,y2)

legend('cos(x)','cos(2x)')


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

        如图所示:

Matlab中legend函数使用

        删除图例。如图所示:

legend('off')

Matlab中legend函数使用

2.在特定坐标区上添加图例

        从R2019b开始,可以使用tiledlayoutnexttile函数显示分块图。调用tiledlayout函数以创建一个 2×1 分块图布局。调用nexttile函数以创建坐标区对象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'})

3.在执行绘图命令的过程中指定图例标签

        绘制两个线条。通过将 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

        如图所示:

Matlab中legend函数使用

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)

Matlab中legend函数使用

        默认情况下,图例项逐列从上到下排列。要逐行从左到右排列图例项,请将 Orientation 属性设置为 'horizontal'

5.在分块图布局中显示共享图例

        当要在两个或多个图之间共享一个图例时,可以在布局的一个单独图块中显示该图例。

在一个分块图布局中创建三个绘图。

tiledlayout(2,2);
nexttile
plot(rand(5))
nexttile
plot(rand(5))
nexttile
plot(rand(5))

        添加一个共享图例,并将其移至第四个图块。

tiledlayout(2,2);
nexttile
plot(rand(5))
nexttile
plot(rand(5))
nexttile
plot(rand(5))

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

6.在图例中包含部分图形对象

        如果不想将绘制的所有图形对象都包含在图例中,可以指定要包含的图形对象。

        绘制三个线条并返回创建的 Line 对象。创建只包含其中两条线的图例。将第一个输入参数指定为要包含的 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'})

Matlab中legend函数使用

7.为图例添加标题

        绘制两个线条并创建一个图例。然后为图例添加标题。

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

Matlab中legend函数使用

8.删除图例背景

        绘制两个线条并在坐标区左下角创建一个图例。然后,删除图例的背景和轮廓。

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

Matlab中legend函数使用

9.修改图例外观

        通过设置Legend属性来修改图例外观。创建图例时,可以在 legend 命令中使用名称-值对组来设置属性。还可以在创建图例后使用 Legend 对象来设置属性。

        绘制四行随机数据。创建图例并将 Legend 对象赋给变量 lgd。使用名称-值对组设置 FontSize 和 TextColor 属性。

rdm = rand(4);
plot(rdm)

lgd = legend({'Line 1','Line 2','Line 3','Line 4'},'FontSize',12,'TextColor','blue')

Matlab中legend函数使用

lgd = 
  Legend (Line 1, Line 2, Line 3, Line 4) with properties:

         String: {'Line 1'  'Line 2'  'Line 3'  'Line 4'}
       Location: 'northeast'
    Orientation: 'vertical'
       FontSize: 12
       Position: [0.7088 0.7034 0.1778 0.1957]
          Units: 'normalized'

  Show all properties

        创建图例后,通过引用lgd来修改图例。使用对象圆点属性名称表示法设置NumColumns属性。

lgd.NumColumns = 2;

Matlab中legend函数使用

上一篇:33.搜索旋转排序数组


下一篇:直接选择排序