Matlab中legend函数使用

Matlab中legend函数使用目录语法说明例子1.在当前坐标区上添加图例2.在特定坐标区上添加图例3.在执行绘图命令的过程中指定图例标签4.图例位置和列数5.在分块图布局中显示共享图例6.在图例中包含部分图形对象7.为图例添加标题8.删除图例背景9.修改图例外观legend函数是在坐标区上添加图例。语法legendlegend(label1,…,labelN)legend(labels)legend(subset,___)legend(tar…

目录

语法

说明

例子

在当前坐标区上添加图例

在特定坐标区上添加图例

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

图例位置和列数

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

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

为图例添加标题

删除图例背景

修改图例外观


        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’) 删除图例。

例子

在当前坐标区上添加图例

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

在特定坐标区上添加图例

        从R2019b开始,可以使用tiledlayout和nexttile函数显示分块图。调用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'})

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

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

图例位置和列数

        绘制四个线条。在坐标区的西北角创建一个图例。使用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’。

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

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

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;

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

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

        绘制三个线条并返回创建的 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函数使用

为图例添加标题

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

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函数使用

删除图例背景

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

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函数使用

修改图例外观

        通过设置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函数使用

今天的文章Matlab中legend函数使用分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8403.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注