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

本文介绍如何在Matlab中避免图例遮挡曲线的方法,通过将图例拆分为多个并调整位置来改善图表的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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');

复制代码

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值