Matlab画图实现两个或多个legend,不同排版

Matlab提供的legend函数,给出的legend经常覆盖了某些曲线(尤其是用IEEE模板的时候,一般图片宽度不超过315px).
  1. a=linspace(0,2*pi,100);
  2. y1=100*sin(a);
  3. y2=50*cos(a);
  4. y3=tan(a);
  5. y4=log(a);
  6. y=[y1;y2;y3;y4];
  7. figure
  8. p=plot(a,y)
  9. legend('sin','cos','tan','log')
复制代码
如下图所示:

Matlab画图实现两个或多个legend,不同排版
2010-10-4 22:46 上传
下载附件 (18.42 KB)
Matlab画图实现两个或多个legend,不同排版


这显然不是你想要的,你的reviewers也会肯定让你修改的!

原因是Matlab的Legend函数,只能水平或者竖直排版!

解决方法:把legend分成几个,相对独立,这样可以使用鼠标随意移动,确保不遮挡曲线。

结果如下图所示:

Matlab画图实现两个或多个legend,不同排版
2010-10-4 22:46 上传
下载附件 (18.15 KB)
Matlab画图实现两个或多个legend,不同排版


程序演示:
  1. a=linspace(0,2*pi,100);
  2. y1=100*sin(a);
  3. y2=50*cos(a);
  4. y3=tan(a);
  5. y4=log(a);
  6. y=[y1;y2;y3;y4];
  7. figure
  8. p=plot(a,y)

  9. legend(p(1:2),'sin','cos');
  10. ah=axes('position',get(gca,'position'),...
  11.             'visible','off');
  12. legend(ah,p(3:4),'tan','log','location','west');

复制代码

 

 

你可能感兴趣的:(转载,Matlab,科学计算可视化)