MATLAB 图例 legend 使用技巧

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 



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



另外,去掉legend边框

legend(‘x’,’y’) 
legend(‘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); 
 

猜你喜欢

转载自blog.csdn.net/time_forgotten/article/details/88877958