您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > MATLAB第3讲二维和三维图形绘制
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)01234567-1-0.8-0.6-0.4-0.200.20.40.60.813.2plot命令的使用例子:多条曲线绘制t=0:0.1:2*pi;y=[sin(t);cos(t)];plot(t,y)01234567-1-0.8-0.6-0.4-0.200.20.40.60.813.2plot命令的使用例子:两边都有坐标轴曲线绘制t=0:0.1:2*pi;plotyy(t,sin(t),t,0.01*cos(t))01234567-1-0.500.5101234567-0.01-0.00500.0050.013.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')01234567-1-0.8-0.6-0.4-0.200.20.40.60.813.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]0.50.510.2cos(4)22cos()xxyexyex和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');例子如果要标注怎么办?sin()ttext(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=Automaticbestplacement(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)例子024681012-0.4-0.3-0.2-0.100.10.20.30.40.50.6FirstSecondThird在同一坐标区间[0,2*pi]内,分别用不同的线型和颜色绘制曲线标记两曲线交叉点。0.50.510.2cos(4)22cos()xxyexyex和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)10-11001011021001011021033.4loglog、semilogx、semilogy、polar例子t=0:0.1:6*pi;r=abs(cos(t/3))*100+1;semilogx(t,r)10-11001011020204060801001203.4loglog、semilogx、semilogy、polar例子t=0:0.1:6*pi;r=abs(cos(t/3))*100+1;semilogy(t,r)051015201001011021033.4loglog、semilogx、semilogy、polar例子t=0:0.1:6*pi;r=cos(t/3)+1/9;polar(t,r)0.511.530210602409027012030015033018003.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)gridonboxonaxisequal3.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)-2-1.5-1-0.500.511.52-1-0.500.51-2-1012-1-0.500.5151030210602409027012030015033018003.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)-2-1.5-1-0.500.511.52-1-0.500.51-2-1012-1-0.500.51-202-101-50050-101-202-101-202-1013.5二维图形坐标轴的控制新的分割必须不能破坏原有的分割,仔细观察下面两例子的区别subplot(211),plot(x,y);subplot(312),plot(x,y)subplot(211),plot(x,y);subplot(313),plot(x,y)-2-1.5-1-0.500.511.52-101-2-1.
本文标题:MATLAB第3讲二维和三维图形绘制
链接地址:https://www.777doc.com/doc-4629540 .html