Matlab设置Legend横排、分块
生活随笔
收集整理的這篇文章主要介紹了
Matlab设置Legend横排、分块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
高級用法1:指定legend顯示的位置:
legend({'str1','str2','strn'},'Location','SouthEast');
比較雞肋,畫好圖后樹手動拖動就好了
高級用法2:指定顯示某幾條曲線的legend:
例如你有25條曲線,想顯示其中1,6,11,16,21的legend
H = plot(data);
legend(H([1 6 11 16 21],'1,'6','11’,'16','21');
高級用法3:legend橫排
hl = legend(H([1 6 11 16 21],'1,'6','11’,'16','21');
set(hl,'Orientation','horizon')
高級用法4:不顯示方框:
hl = legend(H([1 6 11 16 21],'1,'6','11’,'16','21');
set(hl,'Box','off');
查看這個的初衷是因為四條曲線的對比圖,但是有些曲線差別太大,比如A在[1.8,1.82],B在[0.9,1.1],CD曲線在中間這樣的話,因為A曲線的存在,中坐標最大值是1.82但是變化很不明顯,所以該曲線在圖的最上方,而且緊挨著圖的上邊界,因為圖例在右上方,這樣肯定會覆蓋曲線,所以想著橫排。
但是這種方法也不好做好的事拆開。
Matlab提供的legend函數,給出的legend經常覆蓋了某些曲線(尤其是用IEEE模板的時候,一般圖片寬度不超過315px).
a=linspace(0,2*pi,100); y1=100*sin(a); y2=50*cos(a); y3=tan(a); y4=log(a); y=[y1;y2;y3;y4]; figure p=plot(a,y) legend('sin','cos','tan','log') 如下圖所示:
原因是Matlab的Legend函數,只能水平或者豎直排版!
解決方法:把legend分成幾個,相對獨立,這樣可以使用鼠標隨意移動,確保不遮擋曲線。
結果如下圖所示:
位置可以隨便寫,圖繪制好厚,手動拖動。
a=linspace(0,2*pi,100); y1=100*sin(a); y2=50*cos(a); y3=tan(a); y4=log(a); y=[y1;y2;y3;y4]; figure p=plot(a,y)legend(p(1:2),'sin','cos'); ah=axes('position',get(gca,'position'),...'visible','off'); legend(ah,p(3:4),'tan','log','location','west');總結
以上是生活随笔為你收集整理的Matlab设置Legend横排、分块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux内核通知链机制的原理及实现【转
- 下一篇: return 关键字 c