Matlab作曲线图plot基础理论篇
本文为原创,如有理解错误的地方,欢迎批评指正!
最近在写论文的时候贴matlab作出的曲线图弄得很头疼,因为论文中贴的图较小,每条线代表什么要弄得很清晰;要照顾黑白打印版论文的感受,线之间不能仅靠颜色区别。边看文档边上网查,把画图方法、标注方法、保存方法整理一下方便以后查看。
画图的最基本语法是:
plot(x1,y1,LineSpec1,'Name',value,...,xn,yn,LineSpecn,'Name',value);
其中可以设置属性的部分为LineSpec和'Name',Value,拟合的曲线可以由不同线型的线或一些标记(marker)组成,也可以线和标记同时用就像把标记用线串成一个手链一样。这里LineSpec针对线型、标记种类和线颜色;'Name',Value参数对针对很多参数,详细的可以在matlab帮助文档中搜索lineseries properties,本文第二节中会介绍一些常用的。接下来按照每个参数列出可能的取值。
一. LineSpec
线型一共就4种:'-'实线、'--'短划线、':'虚线、'-.'点划线。
标记好多种:'o'、'+'、'*'、'.'、'x'、's'方块、'd'方片、'^'上三角号、'v'下三角号、'>'向右的三角号、'<'向左的三角号、'p'五角星、'h'六角形。
线的颜色:'y'黄色、'm'洋红、'c'青色、'r'红色、'g'绿色、'b'蓝色、'w'白色、'k'黑色。
LineSpec在使用的时候神奇之处在于根本不用声明你改得是哪个参数,只要写在那它就认识,而且可以任意组合任意交换位置。举几个例子:
plot(x,y,'b--o');%蓝色带圈的短划线 plot(x,y,'--gs');%绿色带方块的短划线 plot(x,y,'c*');%青色的*描点
二. 'Name',Value参数对
参数对既针对线又针对标记,常用的参数有以下的几个:
'LineStyle':还是修改线型的,取值就是第一章中介绍的四种线型(本来取值还有一个none,就是不画线,不画线干嘛要这么写呢?始终不理解)。最方便的还是用第一章中直接设置的方式。
'Color':设置线条颜色的。这里主要针对在LineSpec中不能用现有的颜色表达的情况,比如我想自己用RGB调出一个我喜欢的颜色,直接用[R,G,B]指定就可以了,比如[1,0.6,0]。
'LineWidth':设置线宽,单位为点(point),1point=1/72 inch。默认的线宽是0.5point。
'Marker':设置标记形式,标记的形式也是和第一章一样,和线型一样可以用第一章中的方法直接指定。
'MarkerEdgeColor':标记轮廓的颜色,取值同线条颜色的取值。
'MarkerFaceColor':标记填充的颜色,取值同线条颜色的取值。
'MarkerSize':标记的大小,单位为点(point)。默认值为6。
三.标注方法
标注分为坐标轴的标注和每条曲线线代表什么的标注。
坐标轴标注
直接使用xlabel、ylabel和title函数。如果在表示坐标轴单位的时候需要用到平方之类的,可以给需要上标的每一个字符前面加上一个"^",例如:
xlabel('Cn^2/m^-^2^/^3');
显示出来的效果就是:。
曲线标注
在一个图表中画了很多曲线的时候可以用legend函数标注:
legend('A','B','C');%代表三条曲线
需注意的是,legend中变量的顺序要和plot中的顺序对应。通过设置'Fontsize'参数改变字体大小。
我还没有查到有什么办法可以自动调整legend框的大小的,如果有什么好办法的话,请告诉我。
四.图表保存方法
当然可以手动保存,但是当一下子输出了20几张图表的时候还是希望程序能给文件名自动标号保存好。这一部分可以参考一下这篇博客中介绍的imwrite、print和saveas三个函数,非常详细。
如果希望保存成放大也不虚的图片可以存为.eps的矢量图:
saveas(gcf,strcat(num2str(t),'.eps'));
这里gcf为当前窗口中图的句柄,t是用来实现对好多张图保存成文件时自动标号的。这个语句的问题是在保存的时候彩色会丢失,得到的是一个黑白的图,这个时候加一个'psc2'就可以解决:
saveas(gcf,strcat(num2str(t),'.eps'),'psc2');