加图例 - MATLAB legend MathWorks 中国 (2024)

Table of Contents
语法 说明 示例 在当前坐标区上添加图例 在特定坐标区上添加图例 在执行绘图命令的过程中指定图例标签 从图例中排除线条 列出列中的条目并指定图例位置 反转图例项的顺序 在分块图布局中显示共享图例 在图例中包含部分图形对象 创建包含 LaTeX 标记的图例 为图例添加标题 删除图例背景 指定图例字体大小和颜色 输入参数 label1,...,labelN — 标签(指定为单独的参量) 字符向量 | 字符串 labels — 标签(指定为数组) 字符向量元胞数组 | 字符串数组 | 分类数组 subset — 要包含在图例中的数据序列 图形对象向量 target — 图例的目标 Axes 对象 | PolarAxes 对象 | GeographicAxes 对象 | 独立可视化 lcn — 图例位置 'north' | 'south' | 'east' | 'west' | 'northeast' | ... ornt — 方向 'vertical' (默认) | 'horizontal' bkgd — 图例框显示 'boxon' (默认) | 'boxoff' vsbl — 图例可见性 'hide' | 'show' | 'toggle' 名称-值参数 NumColumns — 列数 1 (默认) | 正整数 输出参量 lgd — Legend 对象 Legend 对象 提示 算法 版本历史记录 R2023b: 堆叠条形图和区域图的图例顺序发生反转 R2022b: 删除线条或其他绘图对象时图例会更新 R2021a: 将空标签传递给 legend 函数会在图例中省略该条目 R2018b: 当属性存在时,legend 将参量解释为属性名称 R2017b: 在坐标区尚不存在时,使用 legend 将创建坐标区 R2017a: 添加或删除数据时,图例会自动更新 R2014b: 不建议返回多个输出 另请参阅 函数 属性 主题 MATLAB 命令 Americas Europe Asia Pacific

在坐标区上添加图例

全页折叠

语法

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 创建一个笛卡尔坐标区。

示例

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(vsbl) 控制图例的可见性,其中 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 MathWorks 中国 (1)

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

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

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

加图例 - MATLAB legend MathWorks 中国 (2)

删除图例。

legend('off')

加图例 - MATLAB legend MathWorks 中国 (3)

在特定坐标区上添加图例

打开实时脚本

从 R2019b 开始,您可以使用 tiledlayoutnexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1ax2。在每个坐标区中对随机数据绘图。通过指定 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'})

加图例 - MATLAB legend MathWorks 中国 (4)

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

打开实时脚本

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

加图例 - MATLAB legend MathWorks 中国 (5)

从图例中排除线条

打开实时脚本

要从图例中排除一个线条,请将其标签指定为空字符向量或字符串。例如,绘制两个正弦波,并通过调用 yline 函数在零位置添加一条水平虚线。然后创建一个图例,并通过将其标签指定为 '' 来排除该零位置的虚线。

x = 0:0.2:10;plot(x,sin(x),x,sin(x+1));hold onyline(0,'--')legend('sin(x)','sin(x+1)','')

加图例 - MATLAB legend MathWorks 中国 (6)

列出列中的条目并指定图例位置

打开实时脚本

绘制四个线条。在坐标区的西北角创建一个图例。使用 NumColumns 属性指定图例的列数。

x = linspace(0,pi);y1 = cos(x);plot(x,y1)hold ony2 = cos(2*x);plot(x,y2)y3 = cos(3*x);plot(x,y3)y4 = cos(4*x);plot(x,y4)hold offlegend({'cos(x)','cos(2x)','cos(3x)','cos(4x)'},... 'Location','northwest','NumColumns',2)

加图例 - MATLAB legend MathWorks 中国 (7)

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

反转图例项的顺序

自 R2023b 起

打开实时脚本

通过设置图例的 Direction 属性,可以反转图例项的顺序。例如,绘制四个线条并添加一个图例。

plot([4 5 6 7; 0 1 2 3])lgd = legend("First","Second","Third","Fourth");

加图例 - MATLAB legend MathWorks 中国 (8)

反转图例项的顺序。

lgd.Direction = "reverse";

加图例 - MATLAB legend MathWorks 中国 (9)

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

打开实时脚本

当您要在两个或多个图之间共享一个图例时,您可以在布局的一个单独图块中显示该图例。您可以将图例放置在图块网格中,或放置在外侧图块中。

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

t = tiledlayout('flow','TileSpacing','compact');nexttileplot(rand(5))nexttileplot(rand(5))nexttileplot(rand(5))

加图例 - MATLAB legend MathWorks 中国 (10)

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

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

加图例 - MATLAB legend MathWorks 中国 (11)

接下来,添加第四个绘图,并将图例移到 east 图块。

nexttileplot(rand(5))lgd.Layout.Tile = 'east';

加图例 - MATLAB legend MathWorks 中国 (12)

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

打开实时脚本

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

绘制三个线条并返回创建的 Line 对象。创建只包含其中两条线的图例。将第一个输入参量指定为要包含的 Line 对象的向量。

x = linspace(0,pi);y1 = cos(x);p1 = plot(x,y1);hold ony2 = cos(2*x);p2 = plot(x,y2);y3 = cos(3*x);p3 = plot(x,y3);hold offlegend([p1 p3],{'First','Third'})

加图例 - MATLAB legend MathWorks 中国 (13)

创建包含 LaTeX 标记的图例

打开实时脚本

创建一个图,通过调用 legend 函数并将 Interpreter 属性设置为 'latex' 来添加包含 LaTeX 标记的图例。用美元符号 ($) 将标记括起来。

x = 0:0.1:10;y = sin(x);dy = cos(x);plot(x,y,x,dy);legend('$sin(x)$','$\frac{d}{dx}sin(x)$','Interpreter','latex');

加图例 - MATLAB legend MathWorks 中国 (14)

为图例添加标题

打开实时脚本

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

x = linspace(0,pi);y1 = cos(x);plot(x,y1)hold ony2 = cos(2*x);plot(x,y2)hold offlgd = legend('cos(x)','cos(2x)');title(lgd,'My Legend Title')

加图例 - MATLAB legend MathWorks 中国 (15)

删除图例背景

打开实时脚本

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

x = linspace(0,pi);y1 = cos(x);plot(x,y1)hold ony2 = cos(2*x);plot(x,y2)hold offlegend({'cos(x)','cos(2x)'},'Location','southwest')legend('boxoff')

加图例 - MATLAB legend MathWorks 中国 (16)

指定图例字体大小和颜色

打开实时脚本

您可以通过设置属性来更改图例的不同方面。您可以在调用 legend 时通过指定名称-值参量来设置属性,也可以在调用 legend 后设置 Legend 对象的属性。

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

rdm = rand(4);plot(rdm)lgd = legend({'Line 1','Line 2','Line 3','Line 4'},... 'FontSize',12,'TextColor','blue');

加图例 - MATLAB legend MathWorks 中国 (17)

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

lgd.NumColumns = 2;

加图例 - MATLAB legend MathWorks 中国 (18)

输入参数

全部折叠

label1,...,labelN标签(指定为单独的参量)
字符向量 | 字符串

标签,指定为由字符向量或字符串组成的以逗号分隔的列表。

要从图例中排除某个项目,请将对应的标签指定为空字符向量或字符串。

要在标签中包括特殊字符或希腊字母,请使用 TeX 或 LaTeX 标记。要查看选项表,请参阅 Interpreter 属性。

要指定关键字标签,例如 'Location''off',请使用字符向量元胞数组、字符串数组或字符数组。

示例: legend('Sin Function','Cos Function')

示例: legend("Sin Function","Cos Function")

示例: legend("Sample A","","Sample C")

示例: legend('\gamma','\sigma')

labels标签(指定为数组)
字符向量元胞数组 | 字符串数组 | 分类数组

标签,指定为字符向量元胞数组、字符串数组或分类数组。

要从图例中排除某个项目,请将对应的标签指定为元胞数组中的空字符向量或字符串数组中的空字符串。

要在标签中包括特殊字符或希腊字母,请使用 TeX 或 LaTeX 标记。要查看选项表,请参阅 Interpreter 属性。

示例: legend({'Sin Function','Cos Function'})

示例: legend(["Sin Function","Cos Function"])

示例: legend({'Sample A','','Sample C'})

示例: legend({'\gamma','\sigma'})

示例: legend(categorical({'Alabama','New York'}))

subset要包含在图例中的数据序列
图形对象向量

要包含在图例中的数据序列,指定为图形对象向量。

target图例的目标
Axes 对象 | PolarAxes 对象 | GeographicAxes 对象 | 独立可视化

图例的目标,指定为 Axes 对象、PolarAxes 对象、GeographicAxes 对象或具有 LegendVisible 属性的独立可视化(例如 GeographicBubbleChart 对象)。如果不指定目标,则 legend 函数使用 gca 命令返回的对象作为目标。

独立可视化不支持修改图例外观(例如位置),或者不支持将 Legend 对象作为输出参量返回。

lcn图例位置
'north' | 'south' | 'east' | 'west' | 'northeast' | ...

图例相对于坐标区的位置,指定为下表中列出的位置值之一。

描述
'north'坐标区中的顶部
'south'坐标区中的底部
'east'坐标区中的右侧区域
'west'坐标区中的左侧区域
'northeast'坐标区中的右上角(二维坐标区的默认值)
'northwest'坐标区中的左上角
'southeast'坐标区中的右下角
'southwest'坐标区中的左下角
'northoutside'坐标区的上方
'southoutside'坐标区的下方
'eastoutside'到坐标区的右侧
'westoutside'到坐标区的左侧
'northeastoutside'坐标区外的右上角(三维坐标区的默认值)
'northwestoutside'坐标区外的左上角
'southeastoutside'坐标区外的右下角
'southwestoutside'坐标区外的左下角
'best'创建图例时坐标区内与绘图数据冲突最小的位置。如果绘图数据发生变化,您可能需要将位置重置为 'best'
'bestoutside'坐标区的右上角之外(当图例为垂直方向时)或坐标区下方(当图例为水平方向时)
'layout'分块图布局中的图块。要将图例移至不同图块,请设置图例的 Layout 属性。
'none'Position 属性决定。可使用 Position 属性在自定义位置显示图例。

示例: legend('Location','northeastoutside')

ornt方向
'vertical' (默认) | 'horizontal'

方向,指定为下列值之一:

  • 'vertical' - 垂直堆叠图例项。

  • 'horizontal' - 并排列出图例项。

示例: legend('Orientation','horizontal')

bkgd图例框显示
'boxon' (默认) | 'boxoff'

图例框显示,指定为下列值之一:

  • 'boxon' - 显示图例背景和轮廓。

  • 'boxoff' - 不显示图例背景和轮廓。

示例: legend('boxoff')

vsbl图例可见性
'hide' | 'show' | 'toggle'

图例可见性,指定为下列值之一:

  • 'hide' - 隐藏图例。

  • 'show' - 显示图例或创建图例(如果不存在)。

  • 'toggle' - 切换图例可见性。

示例: legend('hide')

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: legend({'A','B'},'TextColor','blue','FontSize',12) 创建一个蓝色、12 磅字体的图例。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 Legend 属性

NumColumns列数
1 (默认) | 正整数

列数,指定为正整数。如果没有足够的图例项填充指定数量的列,则显示的列数可能会少一些。

使用 Orientation 属性控制图例项是逐列还是逐行依序显示。

示例: lgd.NumColumns = 3

输出参量

全部折叠

lgdLegend 对象
Legend 对象

Legend 对象。可使用 lgd 在创建图例之后查看或修改图例属性。

plot(rand(3))lgd = legend('line1','line2','line3');lgd.FontSize = 12;lgd.FontWeight = 'bold';

提示

  • 要为图例中 50 个以上的对象添加标签,必须为每个对象指定一个标签。否则,legend 仅描绘图中的前 50 个对象。

算法

  • 重新调用 legend 函数不会重置图例属性,如位置或方向。如果存在图例,legend 函数将更新现有图例。一个 Axes 对象仅可以拥有一个图例。

  • 图例反映图形对象在坐标区上的可见性。Visible 属性设置为 'off' 的图形对象在图例中灰显。

版本历史记录

在 R2006a 之前推出

全部展开

从 R2017b 开始,如果坐标区不存在,legend 函数将创建坐标区。

另请参阅

函数

  • plot | hold | title | xlabel | ylabel | text

属性

  • Legend 属性

主题

  • 将图例添加到图

MATLAB 命令

您点击的链接对应于以下 MATLAB 命令:

 

请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。

加图例 - MATLAB legend MathWorks 中国 (21)

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

Americas

Europe

Asia Pacific

Contact your local office

加图例 - MATLAB legend MathWorks 中国 (2024)
Top Articles
Latest Posts
Article information

Author: Maia Crooks Jr

Last Updated:

Views: 6561

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Maia Crooks Jr

Birthday: 1997-09-21

Address: 93119 Joseph Street, Peggyfurt, NC 11582

Phone: +2983088926881

Job: Principal Design Liaison

Hobby: Web surfing, Skiing, role-playing games, Sketching, Polo, Sewing, Genealogy

Introduction: My name is Maia Crooks Jr, I am a homely, joyous, shiny, successful, hilarious, thoughtful, joyous person who loves writing and wants to share my knowledge and understanding with you.