目录
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)')
如图所示:
如果在坐标区添加或删除数据序列,图例会相应地更新。
创建数据序列时,可通过将 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
如图所示:
删除图例。如图所示:
legend('off')
在特定坐标区上添加图例
从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
如图所示:
图例位置和列数
绘制四个线条。在坐标区的西北角创建一个图例。使用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)
默认情况下,图例项逐列从上到下排列。要逐行从左到右排列图例项,请将 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'})
为图例添加标题
绘制两个线条并创建一个图例。然后为图例添加标题。
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')
删除图例背景
绘制两个线条并在坐标区左下角创建一个图例。然后,删除图例的背景和轮廓。
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')
修改图例外观
通过设置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')
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函数使用分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8403.html