Matlab legend函数详解:基本用法与高级技巧
Matlab legend函数详解:基本用法与高级技巧
在使用Matlab绘图时,经常需要对不同的图标进行标注,例如用“+”表示A的运动情况,“*”表示B的运动情况。Matlab提供了legend函数来实现这一功能,下面详细介绍其用法。
legend函数的基本用法
legend函数的基本语法如下:
legend(string1, string2, string3, ...)
这个函数会将字符串1、字符串2、字符串3等标注到图中,每个字符串对应的图标为画图时的图标。
示例
plot(x, sin(x), '.b', x, cos(x), '+r')
legend('sin', 'cos')
这样会把".“标识为'sin’,把”+“标识为"cos”。
还可以通过'Location'
参数来指定图例标识框的位置:
'North'
:图框内顶部附近'South'
:图框内底部'East'
:图框内右侧'West'
:图框内左侧'NorthEast'
:图框内右上角(默认)'NorthWest'
:图框内左上角(默认)
Matlab绘图中legend的高级用法
高级用法1:指定legend显示的位置
可以使用以下方式指定legend的位置:
legend({'str1', 'str2', 'strn'}, 1);
legend({'str1', 'str2', 'strn'}, 2);
legend({'str1', 'str2', 'strn'}, 'Location', 'SouthEast');
高级用法2:指定显示某几条曲线的legend
如果你有多条曲线,但只想显示部分曲线的legend,可以使用以下方法:
方法1:
for i = [2:5 7:10 12:15 17:20 22:25]
set(get(get(H(i), 'Annotation'), 'LegendInformation'), 'IconDisplayStyle', 'off');
end
legend('1', '6', '11', '16', '21');
方法2:
H = plot(data);
legend(H([1 6 11 16 21]), '1', '6', '11', '16', '21');
高级用法3:legend横排
可以通过以下方式实现legend横排:
hl = legend(H([1 6 11 16 21]), '1', '6', '11', '16', '21');
set(hl, 'Orientation', 'horizon');
高级用法4:不显示方框
可以通过以下方式不显示legend的方框:
hl = legend(H([1 6 11 16 21]), '1', '6', '11', '16', '21');
set(hl, 'Box', 'off');
matlab中legend函数的使用方法
功能
legend函数用于在图形上添加图例。它可以在包含多种图形对象类型(如线条图、条形图、饼形图等)的窗口中显示一个图例。对于每条线,图例会在用户给定的文字标签旁显示线条的线型、标记符号和颜色等。当所画的是区域(patch或surface对象)时,图例会在文字旁显示表面颜色。Matlab在一个坐标轴中仅仅显示一个图例。图例的位置有几个因素决定,像遮挡的对象等,用户可以用鼠标拖动图例到恰当的位置,双击标签可以进入标签编辑状态。
用法
legend('string1', 'string2', ...)
:用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例。legend(h, 'string1', 'string2', ...)
:用指定的文字string在一个包含于句柄向量h中的图形显示图例。用给定的数据对相应的图形对象加上图例。legend(string_matrix)
:用字符矩阵参量string_matrix的每一行字符串作为标签。legend(h, string_matrix)
:用字符矩阵参量string_matrix的每一行字符串作为标签给包含于句柄向量h中的相应的图形对象加标签。legend(axes_handle, ...)
:给由句柄axes_handle指定的坐标轴显示图例。legend('off')
:从当前的坐标轴,或是由axes-handle指定的坐标轴中除掉图例。legend(axes_handle, 'off')
:从由axes_handle指定的坐标轴中除掉图例。legend_handle = legend
:返回当前坐标轴中的图例句柄,若坐标轴中没有图例存在,则返回空向量。legend
:对当前图形中所有的图例进行刷新。legend(legend_handle)
:对由句柄legend_handle指定的图例进行刷新。
参数说明
当在一个坐标系上画多幅图形时,为区分各个图形,Matlab提供了图例的注释说明函数。其格式如下:
legend(字符串1,字符串2,字符串3,…,参数)
参数字符串的含义如下:
- 0:尽量不与数据冲突,自动放置在最佳位置
- 1:放置在图形的右上角
- 2:放置在图形的左上角
- 3:放置在图形的左下角
- 4:放置在图形的右下角
- -1:放置在图形视窗的外右边
在Matlab 2019b中,legend函数的用法已经更新,如下图所示:
这个函数在图中开启了一个注释视窗,依据绘图的先后顺序,依据输出字符串对各个图形进行注释说明。如字符串1表示第一个出现的线条,字符串2表示第二个出现的线条,参数字符串确定注释视窗在图形中的位置。同时,注释视窗也可以用鼠标拖动,以便将其放置在一个合适的位置。
示例
在同一坐标内,绘出两条函数曲线并有图解注释:
x = 0:0.2:12;
plot(x, sin(x), '-', x, 1.5*cos(x), ':')
legend('First', 'Second', 'NorthEastOutside'); % 强行将注释视窗放在图形视窗的外右边。
程序运行的结果如图所示: