您的位置:首页 > 编程语言 > MATLAB

MATLAB作图的图例控制

2017-10-30 15:46 267 查看
转载[]http://blog.sina.com.cn/s/blog_49d955150101jyd9.html]

matlab绘图中legend的终极用法,去掉legend的边框 (2013-06-17 16:15:40)转载▼

标签: 教育 分类: Matlab学习

matlab绘图中legend的终极用法

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%持续更新。 当前: 20100108 %

%仅作笔记。 作者: keyflying %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

legend有时候挺烦人的,尽管大多时候挺好用。

基本数据:

data = rand(25)+repmat(1:25,25,1);

H = plot(data);

基本用法:

legend({‘str1’,’str2’,’strn’});

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

legend({‘str1’,’str2’,’strn’},1);

legend({‘str1’,’str2’,’strn’},2);

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

可选的位置很多:

North:Inside plot box near top

South:Inside bottom

EastI:nside right

West:Inside left

NorthEast:Inside top right (default)

NorthWest:Inside top left

SouthEast:Inside bottom right

SouthWest:Inside bottom left

NorthOutside:Outside plot box near top

SouthOutside:Outside bottom

EastOutside:Outsideright

WestOutside:Outside left

NorthEastOutside:Outside top right

NorthWestOutside:Outside top left

SouthEastOutside:Outside bottom right

SouthWestOutside:Outside bottom left

Best:Least conflict with data in plot

BestOutside:Least unused space outside plot

通常,用’Best‘比较不错

高级用法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’);

参考文献

http://www.mathworks.cn/access/helpdesk/help/techdoc/creating_plots/braliom.html

doc legend

Site:http://hi.baidu.com/keyflying/item/7b39e9bbdcaceba5ebba936f

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

另外,去掉legend边框,可以参考:http://www.newsmth.net/nForum/#!article/Paper/62848

legend(‘x’,’y’)

legend(‘boxoff’)

写两次就好了。我最初尝试着写成legend(‘x’,’y’,’boxoff’)是不行的。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

修改legend的字体:

legend1=legend(‘x’,’y’);

set(legend1,’FontName’,’Times New Roman’,’FontSize’,12,’FontWeight’,’normal’);

修改legend位置:

i=0;%i=0,自动调整最佳位置;i=1,右上;i=2,左上;i=3,左下;i=4,右下;

legend1=legend(‘x’,’y’,i);

20160518

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

最好的说明文档,当然是帮助文档:

matlab:

doc legend

legend(‘hide’), legend(axes_handle,’hide’) makes the legend in the current axes or the axes specified by axes_handle invisible.

legend(‘show’), legend(axes_handle,’show’) makes the legend in the current axes or the axes specified by axes_handle visible. A legend is created if one did not exist previously. Legends created automatically are limited to depict only the first 20 lines in the plot; if you need more legend entries, you can manually create a legend for them all with legend(‘string1’,’string2’,…) syntax.

legend(‘boxoff’), legend(axes_handle,’boxoff’) removes the box from the legend in the current axes or the axes specified by axes_handle, and makes its background transparent.

legend(‘boxon’), legend(axes_handle,’boxon’) adds a box with an opaque background to the legend in the current axes or the axes specified by axes_handle.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: