在绘制plot图的过程中,有时候会遇到线条比较多legend太长想将其分列的情况,经搜索在百度知道上找到了下边这两种方法,各有千秋,适用于不同的情况:
转自:https://zhidao.baidu.com/question/624168427868739764.html
方法1:
采用代码画legend,参考如下:
1 clear ; 2 3 clc; 4 figure(1); 5 cxd = rand(10,6)*0.8; %%%%% 产生0到0.8的随机数 6 h2=plot(cxd); 7 set(h2(1),'LineStyle','-','LineWidth',2,'Color','b','Marker','o',... 8 'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5) 9 set(h2(2),'LineStyle','-','LineWidth',2,'Color','m','Marker','o',... 10 'MarkerEdgeColor','m','MarkerFaceColor','m','MarkerSize',5) 11 set(h2(3),'LineStyle','-','LineWidth',2,'Color','r','Marker','o',... 12 'MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5) 13 set(h2(4),'LineStyle','-','LineWidth',2,'Color','c','Marker','o',... 14 'MarkerEdgeColor','c','MarkerFaceColor','c','MarkerSize',5) 15 set(h2(5),'LineStyle','-','LineWidth',2,'Color','k','Marker','o',... 16 'MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',5) 17 set(h2(6),'LineStyle','-','LineWidth',2,'Color','g','Marker','o',... 18 'MarkerEdgeColor','g','MarkerFaceColor','g','MarkerSize',5) 19 %下面都是为了把图例放到合适的位置而设置的 20 hold on 21 x=[[1 1 4 4 7 7 ]+0.5;[1 1 4 4 7 7 ]+1.5]; 22 y=[[9 8 9 8 9 8 ]./10+0.05;[9 8 9 8 9 8 ]./10+0.05]; 23 h3=plot(x,y); 24 set(h3(1),'LineStyle','-','LineWidth',2,'Color','b') 25 set(h3(2),'LineStyle','-','LineWidth',2,'Color','m') 26 set(h3(3),'LineStyle','-','LineWidth',2,'Color','r') 27 set(h3(4),'LineStyle','-','LineWidth',2,'Color','c') 28 set(h3(5),'LineStyle','-','LineWidth',2,'Color','k') 29 set(h3(6),'LineStyle','-','LineWidth',2,'Color','g') 30 %以上是为了画图例线 31 hold on 32 x1=[[1 1 4 4 7 7 ]+1;[1 1 4 4 7 7 ]+1]; 33 y1=[[9 8 9 8 9 8 ]./10+0.05;[9 8 9 8 9 8 ]./10+0.05]; 34 h4=plot(x1,y1); 35 set(h4(1),'Marker','o','MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5) 36 set(h4(2),'Marker','o','MarkerEdgeColor','m','MarkerFaceColor','m','MarkerSize',5) 37 set(h4(3),'Marker','o','MarkerEdgeColor','r','MarkerFaceColor','r','MarkerSize',5) 38 set(h4(4),'Marker','o','MarkerEdgeColor','c','MarkerFaceColor','c','MarkerSize',5) 39 set(h4(5),'Marker','o','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',5) 40 set(h4(6),'Marker','o','MarkerEdgeColor','g','MarkerFaceColor','g','MarkerSize',5) 41 %以上是为了画图例的点 42 legends={'cxd1','cxd2','cxd3','cxd4','cxd5','cxd6'}; 43 tx=[1 1 4 4 7 7 ]+1.8; 44 ty=[9 8 9 8 9 8 ]./10+0.05; 45 for i=1:6 46 text(tx(i),ty(i),legends{i}); 47 end 48 %以上是为了设置图例中字的放置位置 49 xlim([1,10]);ylim([0,1]); 50 xlabel('x');ylabel('y');title('legend测试'); 51 grid on;box off;
方法2:
分别构造两个legend,见下面的例子:
1 a=0:0.01:4*pi; 2 y1=100*sin(a); 3 y2=50*cos(a); 4 y3=20*sin(2*a); 5 y4=tan(a); 6 y5=log(a); 7 y6=tan(2*a); 8 y=[y1;y2;y3;y4;y5;y6]; 9 figure 10 p=plot(a,y) 11 12 legend(p(1:3),'sin','cos','sin(2a)'); 13 ah=axes('position',get(gca,'position'),'visible','off'); 14 legend(ah,p(4:6),'tan','log','tan(2a)');
图出来以后,将legend图框拖到合适的位置,
不喜欢有外框,可以关掉(legend boxoff)