在作图应用中的若干问题.ppt
《在作图应用中的若干问题.ppt》由会员分享,可在线阅读,更多相关《在作图应用中的若干问题.ppt(110页珍藏版)》请在三一文库上搜索。
1、1,MATLAB在作图应用中的若干问题,充分的利用这个软件 刘正君 http:/ zjliu,2,几种软件,MATLAB MATHEMATICA MAPLE ORIGIN MATHCAD,3,软件介绍,Mathematica是由S. Wolfram领导开发的,它 有强大的数值计算和符号计算能力。 Maple不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。,4,软件介绍,Origin有很强的画图能力,在曲线拟合、图形编辑等方面很好。 MathCAD是一个交互式的数学系统软件,集文本编辑、数学计算、程序编辑
2、和仿真于一体。MathCAD也可以看作是一个功能强大的计算器,其规则简单。,5,网络资源,对于MATLAB除了MathWorks公司主(这 里提供很多信息,如:新的程序包、新闻, 版本的信息等)。而一些论坛是相互交流的平 台,如: http:/ MATLAB board http:/www.smth.org MathTools board http:/www.matlab- MATLAB大观园,6,1.画图函数句柄的使用,每个画图函数含有的输入参数是很多的,然而我们在看函数的帮助(help)的时候,所能得到的只是一些基本的信息。我们利用 dd = function_name(x,y,z,);
3、dt=get(dd) dt就含有了这个函数的全部使用信息。 请看下面的例子:,7,8,9,2.从句柄中获取、修改信息,有时为了需要,我们需要对所得的图像进行编辑,如加入题注、字体修改、改动线型以及坐标轴范围的改动等。另外从图像上也可以获得一些信息,如数据等。 使用句柄可以完成上面的要求。 然而句柄的缺点就是处理少数的图形时,它花费的时间要常些。在处理大量的图形的时候,就可以显示出它的方便了。 下面的例子是获得图形数据的例子:,10,11,3.一些常用的句柄,gcf 当前图形(figure)的句柄; gca 当前坐标轴(axes)的句柄; gco 当前对象(object)的句柄; 注:当前对象有
4、时需要人为地确定一下,这个操作我们 可以用鼠标去确定,点击一下要确定的对象(这个对象可以是一条曲线、一个标注)就可以了。,12,4.利用句柄修改图形,这里常用的两个函数是get和set。 get 是获得相应的句柄信息; set 是进行设定; gcbo :返回当前指向正在被调用的对象的句柄 findobj 可以查找图形对象 在使用set设定的时候,注意参数的类型,如字符型、double型、还有结构数组等。,13,5.双Y轴曲线的绘制,以下是做两个函数: y1=sin(x); 0H,Ha,Hb=plotyy(0:.1:2*pi,sin(0:.1:2*pi),0:.1:2*pi,exp(0:.1:2
5、*pi); legend(Ha,Hb,sin(x),exp(x),0) set(Ha,linestyle,:) 图形如下:,14,15,6.双Y轴图形的标注,在前面的画图语句中: H,Ha,Hb=plotyy(0:.1:2*pi,sin(0:.1:2*pi),0:.1:2*pi,exp(0:.1:2*pi); 这里的H,Ha,Hb就是相应的句柄; 我们可以用get(*)获得它们的信息,这里面H是一个 1x2的double array型数据。我们直接get(H)是不可以的, 这样get(H(1)就可以了,得到的结果如下:,16,17,7.双Y轴曲线的标注,上面的三屏显示中我们注意一下用红条标出的
6、一行语句: YLabel = 107.001 而我们知道函数ylabel是一个坐标轴标注的函数,而这里它确实作为一个plotyy函数的一条信息,实际上它是一个子句柄。 写下如下两行语句: d1=get(H(1),ylabel); get(d1) 会得到如下的一些信息:,18,19,20,8.双Y轴曲线的坐标标注,我们注意到MATLAB命令窗的画兰颜色的 那一行, String = 这是加入文本信息的一个参数选项。 为此我设计了如下的语句:,21,8.双Y轴曲线的坐标标注,所用的几行语句: d1=get(H(1),ylabel); set(d1,string,sin(x); d2=get(H(2
7、),ylabel); set(d2,string,exp(x); xlabel(x zjliu) 得到的图形如下:,22,23,9.绘制图上图,有时为了需要,需要在图上画图,可能是为了局部放大,或其他目的。 看如下这段程序: figure; t=0.1:.1:2*pi;y=sin(t)+exp(t); plot(t,y,-); title(绘制底图) axes(position,0.25,0.45,0.4,0.3) plot(t,sin(t),r:,t,cos(t),g-.) title(绘制图上图,fontName,楷体_GB2312,. fontsize,20,color,Magenta)
8、 xlim(0 2*pi); 效果见下页:,24,25,26,27,10.多子图的绘制,有时为了比较,需要将几幅图形以阵列的形式画出来,这时就要用到subplot函数。这是一个2x2图形阵列的分布绘制的小程序: t=linspace(0,2*pi,200); figure; subplot(221) plot(t,sin(t) subplot(222) plot(t,cos(t) subplot(223) plot(t,tan(t) subplot(224) plot(t,cot(t) 绘制的结果如下:,28,29,10.多子图的绘制,有时画图的时候,阵列并不是mxn这样的情况,比如说第一行是
9、两幅图;而第二行是一幅图,这时我们就要变通的使用subplot函数了,请看这个例子: t=linspace(0,2*pi,200); figure; subplot(221); plot(t,sin(t) subplot(222); plot(t,cos(t) subplot(212); plot(t,tan(t) 其结果如下:,30,31,10.多子图的绘制,有时用subplot函数来分布图形阵列是可能图形的定位让我们感到不是很理想,这时还有一个办法可以采用,就是利用axes函数来“随心所欲”的定位。看这个例子: t=linspace(0,2*pi,200); figure; axes(po
10、sition,0.1,0.5,0.3,0.4) plot(t,sin(t) axes(position,0.6,0.1,0.3,0.4) plot(t,cos(t) 结果如下:,32,33,11.图形标注的一些问题,常用的几个标注的函数是: text; xlabel (ylabel, zlabel); title 在标注的时候字体,位置以及方向等可以使用MATLAB自己默认的,也可以自己去设定。,34,11.图形标注的一些问题,下面以xlabel为例,讲一下常见的几个问题: xlabel(thit); %标注上脚标 xlabel(Y_Lib); %标注下脚标 花括号的作用是使多个字符都处于相同
11、的状态。 xlabel(zjliu,on BBS); %多行标注 效果见下图:,35,36,12.图形的保存,我们可以直接在figure框上选取相应的菜单条进行图形保存,可是在运行时间很长的程序中用命令实现图形的“自动”保存,会节省我们的时间,带来方便。相应的语句是: h=figure; saveas(h,zjliu,jpg); saveas(gcf, output, bmp); 在MATLAB中支持的图片格式很多,有.bmp, .jpg, .tif, .eps 等格式。,37,13.图形的边框设置,画出的图形四周的坐标轴常见有两种情况,可用如下的语句来切换: set(gca,box,off)
12、; set(gca,box,on); 效果见下图:,38,39,14.坐标轴方向的修改,MATLAB中默认的坐标轴方向是(二维情况): Y轴:向上; X轴:向右。 这里将用下面一段程序实现坐标轴的方向 调整,40,14.坐标轴方向的修改,t=0:.1:1.2; figure; hg=plot(t,t.2,r) set(hg,Marker,h) set(gca,YDir,reverse); % 坐标轴反向 set(gca,XAxisLocation,top); % 刻度移位 set(gca,box,off) set(gca,color,none) po=0.13 0.06 0.775 0.815
13、; set(gca,position,po); tz=text(0.8,0.3,y=x2) set(tz,fontsize,18) xlabel(x,fontsize,18) ylabel(y,fontsize,18) 效果见下图:,41,42,15.坐标值的修改,有时为了需要,对画出的曲线需要修改坐标轴的坐标,下面列举一下几种情况: (1)除去刻度 方法1:编辑图的axis属性,可以去掉坐标值 方法2:语句实现 A=cell(1,6); set(gca,YTickLabel,A);set(gca,XTickLabel,A) 效果见下图:,43,44,15.坐标值的修改,(2)修改坐标 语句实
14、现: 我们用axes句柄的xticklabel (或yticklabel) 这一项就可以了。 看下面这一段程序:,45,15.坐标值的修改,figure; subplot(121) t=1e-4:1e-6:3e-4; plot(t,log10(t),r) tr=text(1.4e-4,-3.6,y=log_10(x) set(tr,fontsize,16) subplot(122) t=1e-4:1e-6:3e-4; plot(t,log10(t) tr=text(1.4e-4,-3.6,y=log_10(x) set(tr,fontsize,16) aa=get(gca,xticklabel
15、); set(gca,xticklabel,aa) 效果见下图:,46,47,16.放大所画的图形,MATLAB所画出的图形是其默认的大小,我们也可以对图形的大小进行重新设定: set(gcf,position,x0 y0 xL yL); set(gcf,outerposition, get(0,screensize); % 最大化,48,17.改变图形的长宽比例,有时为了美观,需要改变一下图形的长宽比例,用如下的语句就可以了: set(gca,position,x0,y0,xL,yL) x0,y0 表示axes的位置; xL,yL表示axes的长和宽。,49,18.坐标轴标注的角度调整,有时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 作图 应用 中的 若干问题
链接地址:https://www.31doc.com/p-2733579.html