matlab如何实现图例的换行
就像我下面给的那个图那样,我不知道是怎么弄出来的啊,MATLAB里面的legend参数好像只提供可以水平显示或是垂直显示,但这两种画的图都很难看,大家帮帮忙吧。 展开
就是关于标注位置的问题吧,我有个比较简单的方法。
图像处理方面,MATLAB代码性比较强些,但是灵活性显然不足,比如相对Excel或Photoshop。作图时,我们没有必要拘泥于MATLAB软件,最好灵活些。
对于你提的这个问题,我们可以利用MATLAB+画图软件搞定。
给你举个例子吧!
输入MATLAB程序画图
clear,clc
a=1:5;
b=[1 5 8 9 4];
c=[1 2 5 6 4];
d=[2 5 4 6 7];
e=[14 5 3 8 1];
plot(a,b,'--',a,c,'--',a,d,'--',a,e,'--');
axis([0.5 5.5 0 15]) %视情况而定
hold on
h=plot(a,b,'o',a,c,'*',a,d,'p',a,e,'h'); %用不同符号来标注
legend(h,'location','southoutside','orientation','horizontal');
%southoutside为下方外部,horizontal为水平排列
title('标题')
legend boxoff
然后,我们再用普通的画图工具对位置进行调整。
调整前后对比图像见下图。
当然用PS同样可以。
注意图像最好保存成矢量图,如emf,png,这样图像失真比较小。
推荐于2016-08-31 · 知道合伙人互联网行家
比如如下一段代码
x=0.1:0.1:5; plot(x,sin(x),'-',x,cos(x),':'); legend(['Model 1:',sprintf('\n'),'sin(x)'],['Model 2:',sprintf('\n'),'cos(x)']);
即可将每个legend都显示为两行。注意在legend函数中试图使用cell array实现换行是行不通的。
title('30','10','八元均匀阵'),title('30','11','八元均匀阵')
可以进行排列
'SouthEastOutside' outside bottom right
'SouthWestOutside' outside bottom left
'BestOutside' 图标标识放在图框外使用最小空间的最佳位置
你自己试着调整吧~
>> plot(sin(1:0.1:10))
>> gtext('正弦函数')
运行一下就知道怎么用了。