目录
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)')
如图所示:
如果在坐标区添加或删除数据序列,图例会相应地更新。创建数据序列时,可通过将 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')
2.在特定坐标区上添加图例
从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'})
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
如图所示:
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)
默认情况下,图例项逐列从上到下排列。要逐行从左到右排列图例项,请将 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'})
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')
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')
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')
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;