Matlab 畫圖實現兩個或多個 legend 不同排版
阿新 • • 發佈:2019-01-04
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')
結果如下圖:
這顯然不是你想要的,你的 reviewers 也會肯定讓你修改的!
原因是 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');