在繪制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)