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

複製代碼

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章