转载[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.