MATLAB第3讲二维和三维图形绘制_第1页
MATLAB第3讲二维和三维图形绘制_第2页
MATLAB第3讲二维和三维图形绘制_第3页
MATLAB第3讲二维和三维图形绘制_第4页
MATLAB第3讲二维和三维图形绘制_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB程序语言设计龙佳乐五邑大学信息学院Longjiale_528@126.com第三讲MATLAB图形绘制基本技术3.1MATLAB基本二维图形绘制3.2plot命令使用3.4二维曲线的标注3.3loglog、semilogx、semilogy、polar3.5二维图形坐标轴的控制3.6其他类型的MATLAB二维图形绘制3.7隐函数绘图3.8MATLAB简单三维图形绘制3.9图形的可视化编辑3.10例子与习题3.1MATLAB基本二维图形绘制在MATLAB中函数曲线的绘制变得非常得简单,最基本的函数是plot函数,二维图形绘制函数可用helpgraph2d列出主要函数,见下表。plot基本的线性坐标绘图loglogX-Y轴双Log坐标绘图semilogxX轴Log、Y轴线性坐标绘图semilogyX轴线性、Y轴Log坐标绘图polar极坐标图plotyy左右两边都有坐标轴的函数曲线绘制3.2plot命令的使用MATLAB最基本的图形曲线绘制命令是plot函数,而loglog、semilogx和semilogy的用法是一样的,下面详细介绍plot的用法。plot的基本用法有plot(x,y)基本的X—Y二维图形曲线绘制其中x,y是x,y两轴数据向量plot(x,y,s)s为字符串,定义曲线的一些属性,其他同上一用法plot(x1,y1,s1,x2,y2,s2,…)同时绘制多条曲线,每条曲线由(x,y,s)定义3.2plot命令的使用例子:正弦曲线绘制>>t=0:0.1:2*pi;y=sin(t);plot(t,y)3.2plot命令的使用例子:多条曲线绘制

t=0:0.1:2*pi;y=[sin(t);cos(t)];plot(t,y)3.2plot命令的使用例子:两边都有坐标轴曲线绘制>>t=0:0.1:2*pi;plotyy(t,sin(t),t,0.01*cos(t))3.2plot命令的使用其他绘图选项(即字符串s的使用)s由下表中一列或两列或三列中属性定义组成,如s=‘-.g’曲线线型曲线颜色标记符号选项意义选项意义选项意义选项意义选项意义‘-’实线‘b’蓝色‘c’蓝绿色‘*’星号‘pentagram’五角星‘--’虚线‘g’绿色‘k’黑色‘.’点号‘o’圆圈‘:’点线‘m’红紫色‘r’红色‘x’叉号‘square’◰‘-.’点划线‘w’白色‘y’黄色‘v’∇‘diamond’

‘none’无线用一个1X3向量任意指定[r,g,b]红绿蓝三原色‘^’∆‘hexagram’六角星‘>’⊳‘<’⊲3.2plot命令的使用例子>>t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);>>plot(t,y1,'-',t,y2,':',t,y3,'x')3.2plot命令的使用例子>>t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);>>plot(t,y1,'-g',t,y2,':m',t,y3,'xk')3.2plot命令的使用例子在同一坐标内,分别用不同的线型和颜色绘制曲线标记两曲线交叉点。区间[0,2*pi]>>x=linspace(0,2*pi,1000);>>y1=0.2*exp(-0.5*x).*cos(4*pi*x);>>y2=2*exp(-0.5*x).*cos(pi*x);>>k=find(abs(y1-y2)<1e-2);%查找y1与y2相等点(近似点)的下标>>x1=x(k);>>y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1与y2值相等的点的y坐标>>plot(x,y1,x,y2,'k:',x1,y3,'bp')3.3二维曲线的标注绘制完曲线后,MATLAB还允许用户使用它提供的一些图形修改函数来进一步修饰画出的图形,标注一些文字信息。二维图形曲线的标注主要用到下表所示的函数。title(string)标注图形标题xlabel(string)标注X轴标题ylabel(string)标注Y轴标题text标注文字gtext(string)用鼠标标注文字legend标注图例3.3二维曲线的标注>>t=0:0.1:2*pi;y=sin(t);plot(t,y);>>title('SineWaveCurve:Title');>>xlabel('TimeAxis:Xlabel');>>ylabel('FunctionValue:Ylabel');例子如果要标注怎么办?>>text(1,-0.6,'sin({\omega}t+{\theta})')使用LaTeX格式的控制字符3.3二维曲线的标注text(x,y,’string’)在(x,y)处标注文字‘string’gtext(‘string’)用鼠标指定位置标注文字>>t=0:0.1:2*pi;y=sin(t);plot(t,y);>>text(1,0,'Textannotation');>>gridon3.3二维曲线的标注legend(‘string1’,‘string2’,‘string3’,…)将用指定的文字标注在当前图形上作为图例说明legend(…,Pos)将图例说明标在指定位置:0=Automatic"best"placement(leastconflictwithdata)1=Upperright-handcorner(default)2=Upperleft-handcorner3=Lowerleft-handcorner4=Lowerright-handcorner-1=Totherightoftheplot3.3二维曲线的标注x=0:.2:12;plot(x,bessel(1,x),x,bessel(2,x),x,bessel(3,x));legend('First','Second','Third');legend('First','Second','Third',-1)例子在同一坐标区间[0,2*pi]内,分别用不同的线型和颜色绘制曲线标记两曲线交叉点。>>x=linspace(0,2*pi,1000);>>y1=0.2*exp(-0.5*x).*cos(4*pi*x);>>y2=2*exp(-0.5*x).*cos(pi*x);>>k=find(abs(y1-y2)<1e-2);%查找y1与y2相等点(近似点)的下标>>x1=x(k);>>y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);%求y1与y2值相等的点的y坐标>>plot(x,y1,x,y2,'k:',x1,y3,'bp')>>title('xfrom0to2{\pi}')>>xlabel('variableX')>>ylabel('variableY')>>text(0.8,1.5,'曲线y1=0.2e^{-0.5x}cos(4{\pi}x)')>>text(4.5,0.3,'曲线y2=2e^{-0.5x}cos({\pi}x)')>>legend('y_{1}','y_{2}','y_{3}')3.4loglog、semilogx、semilogy、polar例子t=0:0.1:6*pi;r=abs(cos(t/3))*100+1;loglog(t,r)3.4loglog、semilogx、semilogy、polar例子>>t=0:0.1:6*pi;r=abs(cos(t/3))*100+1;semilogx(t,r)3.4loglog、semilogx、semilogy、polar例子>>t=0:0.1:6*pi;r=abs(cos(t/3))*100+1;semilogy(t,r)3.4loglog、semilogx、semilogy、polar例子>>t=0:0.1:6*pi;r=cos(t/3)+1/9;polar(t,r)3.5二维图形坐标轴的控制MATLAB还提供有一些函数给用户来控制图形的坐标轴,主要有下表所示的函数。axis控制坐标轴尺度zoom放大镜grid控制x,y轴上的网格box坐标轴外框hold控制是否在当前图上画曲线axes在任意位置创建坐标轴subplot在一幅图上创建多幅子图3.5二维图形坐标轴的控制axis命令的用法见下表axis([xmin,xmax,ymin,ymax]坐标限设为[xmin,xmax,ymin,ymax]axisauto自动设置坐标轴的范围axismanual固定坐标轴范围,holdon后续图用同样坐标范围axistight坐标范围设为数据的上下限axisij(x,y)坐标按矩阵下标方向增长axisxy传统的坐标方向axisequalx,y方向同样尺度标度(等长刻度)axisimage同上,而且坐标范围设为数据的上下限axissquare使坐标外框为正方形axisnormal使坐标轴设为正常状态axison或

axisoff打开或关闭坐标文字、刻度和背景3.5二维图形坐标轴的控制例:在同一坐标中,可以绘制3个同心圆,并加坐标控制>>t=0:0.01:2*pi;>>x=exp(i*t);>>y=[x;2*x;3*x]';>>plot(y)>>gridon>>boxon>>axisequal3.5二维图形坐标轴的控制subplot命令用于在一幅图上创建多幅子图。Subplot(m,n,p)或subplot(mnp)

将图形窗口分解为一个m×n的子图(m×n个坐标系统),其中第p个坐标系统为当前坐标系统,plot等命令在该坐标系统上绘曲线。>>x=-2:0.2:2;>>y=sin(x);>>subplot(211),plot(x,y);subplot(223),stem(x,y);subplot(224),rose(x,y)3.5二维图形坐标轴的控制注意下例的复杂分割>>subplot(211),plot(x,y);subplot(223),stem(x,y);>>subplot(4,4,11),fill(x,y,'r');subplot(4,4,12),feather(x,y);subplot(4,4,15),plot(x,y);subplot(4,4,16),stairs(x,y)3.5二维图形坐标轴的控制新的分割必须不能破坏原有的分割,仔细观察下面两例子的区别>>subplot(211),plot(x,y);subplot(312),plot(x,y)>>subplot(211),plot(x,y);subplot(313),plot(x,y)3.5二维图形坐标轴的控制MATLAB还提供有一个更灵活的命令axes

用于设定当前坐标系统位置,从而可以任意方式分割图形窗口。axes(‘position’,[left,bottom,width,height])

在当前图形窗口中指定位置创建坐标系统,[left,bottom,width,height]

取值在(0,1)之间,且(0,0)表示图形窗口左下角坐标,而(1,1)表示右上角坐标。由若干axes函数调用得出的坐标系可以重叠且互不干扰。见下例3.5二维图形坐标轴的控制>>axes('pos',[0.4]);plot(x,y)>>axes('pos',[0.1]);plot(x,y)>>axes('pos',[0.4]);fill(x,y,'g')>>axes('pos',[0.3]);stem(x,y)3.6其他类型的二维图形绘制MATLAB提供其他许多种类的二维图形绘制,前面已经用到了一些,可以用helpspecgraph

命令查看MATLAB提供的命令,主要有以下一些。bar二维条形图bar(x,y)comet彗星状轨迹图comet(x,y)compass罗盘图compass(x,y)errorbar误差限图形errorbar(x,y,l,u)feather羽毛状图feather(x,y)fill二维填充函数fill(x,y,c)hist直方图hist(x,y)pie饼图pie(x)quiver磁力线图quiver(x,y)stairs阶梯图形stairs(x,y)stem火柴杆图stem(x,y)3.6其他类型的二维图形绘制下面几例说明这些图形的绘制>>x=-2:0.1:2;y=sin(x);subplot(221);feather(x,y);subplot(222);stairs(x,y);subplot(223);stem(x,y);subplot(224);fill(x,y,'r');3.6其他类型的二维图形绘制下面几例说明这些图形的绘制>>x=-2:0.1:2;y=sin(x);subplot(221);compass(x,y);subplot(222);bar(x,y);subplot(223);quiver(x,y);subplot(224);comet(x,y);3.6其他类型的二维图形绘制下面几例说明这些图形的绘制>>x=rand(1,10);pie(x)3.6其他类型的二维图形绘制下面几例说明这些图形的绘制>>x=rand(1,100);hist(x,10)3.7隐函数绘图1、对于函数f=f(x),ezplot函数调用格式:ezplot(f):在默认区间[-2π,2π]绘制f=f(x)的图形;ezplot(f,[a,b]):在区间[a,b]绘制f=f(x)的图形;ezplot函数可用来绘制隐函数图形2、对于函数f=f(x,y),ezplot函数调用格式:ezplot(f):在默认区间x和y都为[-2π,2π]绘制f(x,y)=0的图形;ezplot(f,[xmin,xmax,ymin,ymax]):在区间内绘制f(x,y)=0的图形;3、对于参数方程x=x(t),y=y(t),ezplot函数调用格式:ezplot(x,y):在默认区间t为[0,2π]绘制x=x(t),y=y(t)的图形;ezplot(x,y,[tmin,tmax]):在区间内绘制的图形;3.7隐函数绘图隐函数绘图举例:>>subplot(221);>>ezplot('x^2+y^2-9');axisequal>>subplot(222);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论