用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的运动情况。

legend函数的基本用法是:

LEGEND(string1,string2,string3, ...)

分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。

例如:

plot(x,sin(x),'.b',x,cos(x),'+r')

legend('sin','cos')这样可以把"."标识为'sin',把"+"标识为"cos"

还可以用LEGEND(...,'Location',LOC) 来指定图例标识框的位置

这些是Matlab help文件。后面一段是对应的翻译和说明

'North'              inside plot box near top
       
'South'             
inside bottom
       
'East'              
inside right
       
'West'              
inside left
       
'NorthEast'          inside top
right (default)
       
'NorthWest

...

matlab绘图中legend的终极用法

 

高级用法1:指定legend显示的位置:

legend({'str1','str2','strn'},1);

legend({'str1','str2','strn'},2);

legend({'str1','str2','strn'},'Location','SouthEast');

高级用法2:指定显示某几条曲线的legend

方法1:

例如你有25条曲线,想显示其中1,6,11,16,21的legend,则

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横排

hl = legend(H([1 6 11
16 21],'1,'6','11’,'16','21');
set(hl,'Orientation','horizon')

高级用法4:不显示方框:

hl = legend(H([1 6 11
16 21],'1,'6','11’,'16','21');
set(hl,'Box','off');

matlablegend函数在添加图例时的使用方法

功能 :

在图形上添加图例。该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。当所画的是区域(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                              放置在图形视窗的外右边

此函数在图中开启了一个注释视窗,依据绘图的先后顺序,依据输出字符串对各个图形进行注释说明。如字符串1表示第一个出现的线条,字符串2表示第二个出现的线条,参数字符串确定注释视窗在图形中的位置。同时,注释视窗也可以用鼠标拖动,以便将其放置在一个合适的位置。

【 例 】在同一坐标内,绘出两条函数曲线并有图解注释。

>>x=0:0.2:12;

>>plot(x,sin(x),‘-’,x,1.5*cos(x),‘:’)

legend(‘First’,‘Second’,-1);    %强行将注释视窗放在图形视窗的外右边。

程序运行的结果如图所示:

matlab的legend用法的更多相关文章

  1. Matlab设置Legend横排、分块

    高级用法1:指定legend显示的位置: legend({'str1','str2','strn'},'Location','SouthEast'); 比较鸡肋,画好图后树手动拖动就好了 高级用法2: ...

  2. 向量与矩阵的范数及其在matlab中的用法(norm)

    一.常数向量范数 \(L_0\) 范数 \(\Vert x \Vert _0\overset{def}=\)向量中非零元素的个数 其在matlab中的用法: sum( x(:) ~= 0 ) \(L_ ...

  3. 数学建模学习笔记 | matlab基本命令及用法

    前言 数学建模对matlab水平的要求 了解matlab的基本用法,如常用命令.脚本结构.矩阵的基本操作.绘图等: 熟悉matlab的程序结构,能创建和引用函数: 熟悉常见模型的求解算法和套路: 自主 ...

  4. [ZZ] MATLAB中Legend的一些控制方法

    http://www.eetop.cn/blog/html/03/6503-23349.html 如果一个图中我们画了n条曲线,但是我们只想加图例说明(legend)的只有m条 (m<n).网上 ...

  5. matlab sign函数用法及实例

    在MATLAB科学计算过程当中,我们经常需要对我们的计算公式或者计算结果检验其符号,,sign函数就给我们提供了这种方便,下面就通过实例介绍一下matlab sign函数 的用法,希望能够给您带来帮助 ...

  6. interp1一维数据插值在matlab中的用法

    转载:https://ww2.mathworks.cn/help/matlab/ref/interp1.html?s_tid=srchtitle#btwp6lt-2_1 interp1 一维数据插值( ...

  7. Matlab中imagesc用法

    来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srcht ...

  8. matlab中set用法

    来源:https://www.cnblogs.com/sddai/p/5467500.html 1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值.例如,Lin ...

  9. matplotlib笔记——legend用法

    rates = [0.01, 0.001, 0.0001] models = {} costs = np.array([[0.7, 0.9, 0.4, 0.6, 0.4, 0.3, 0.2, 0.1] ...

随机推荐

  1. [NOIP2013]转圈游戏

    题目描述 Description n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 ...

  2. WebOb的简单介绍

    在之前的文章中我写了有关于如何使用PasteDeploy生成WSGI的Application.在Openstack的源码中,除了 PasteDeploy外,还有一个和WSGI密切相关的工具包WebOb ...

  3. Unix System Overview

    一.Unix 体系结构 由上图可以看出,内核居于最里层,Shell,Libary routines,以及Application通过系统调用(system calls)访问内核提供的功能.注意系统调用与 ...

  4. maven 本地setting.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  5. POJ3254 - Corn Fields(状态压缩DP)

    题目大意 给定一个N*M大小的土地,土地有肥沃和贫瘠之分(每个单位土地用0,1来表示贫瘠和肥沃),要求你在肥沃的单位土地上种玉米,如果在某个单位土地上种了玉米,那么与它相邻的四个单位土地是不允许种玉米 ...

  6. sqlserver 出现 因为文件组 'PRIMARY' 已满 的解决办法 有可能是磁盘剩余空间不足 导致的

    一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数据库文件 给增加个数据文件就好了 解决办 ...

  7. jad的用法(反编译某目录下所有class)

    jad -s java -d E:\scm\MonitorServerEx\src2 -o -ff -r E:\scm\MonitorServerEx\classes-recomp\**\*.clas ...

  8. Java正则表达式--网页爬虫

    网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据 爬取邮箱地址,爬取的源不同,本地爬取或者是网络爬取 (1)爬取本地数据: public static List<String> ...

  9. hdoj 4548 美素数

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submiss ...

  10. nyoj 811 变态最大值

    变态最大值 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Yougth讲课的时候考察了一下求三个数最大值这个问题,没想到大家掌握的这么烂,幸好在他的帮助下大家算是解 ...