zoukankan      html  css  js  c++  java
  • [转] matlab中legend的自由设置

    在绘制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)
     
  • 相关阅读:
    css一div内文字居中
    (三)maven出错记录
    (二)在eclipse中使用maven
    单点登录原理及实现sso
    java定时器2-spring实现
    内存溢出
    IDE配置jvm参数
    CheckStyle
    表单提交数据量大于2m,java 后台接受不到表单传递过来的数据
    JVM实用参数(一)JVM类型以及编译器模式
  • 原文地址:https://www.cnblogs.com/Dontstop/p/9848142.html
Copyright © 2011-2022 走看看