第三章MALTAB绘图_第1页
第三章MALTAB绘图_第2页
第三章MALTAB绘图_第3页
第三章MALTAB绘图_第4页
第三章MALTAB绘图_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB绘图与可视化MATLAB设有大量函数和命令来绘制出各种各样的图形,具有设有大量函数和命令来绘制出各种各样的图形,具有强大的绘图功能强大的绘图功能第二节第二节 二维图形绘制二维图形绘制一、基本二维绘图函数一、基本二维绘图函数 MATLAB 中提供了中提供了plot,loglog,semilogx,semilogy,polar,plotyy 等等6个非常实用的基本二维绘图函数,下面重个非常实用的基本二维绘图函数,下面重点介绍点介绍plot函数的用法函数的用法1. plot函数函数plot(Y)plot(X,Y)plot(X1,Y1, X2,Y2,.)plot(X1,Y1,LineSpe

2、c,.)plot(.,PropertyName,PropertyValue,.)plot(axes_handle,.)h = plot(.)hlines = plot(v6,.) 调用格式:调用格式:【例例3.2-0】给定横纵坐标数据,绘制线图给定横纵坐标数据,绘制线图xy123577.586.5775.5468102 x=1 1.5 2 3 5 7 7.5 8 10; y=2 5 6.5 7 7 5.5 4 6 8; plot(x,y)1.55123456789102345678【例例3.2-1】同时绘制多条线同时绘制多条线 x=3,5,9;3,10,67;3,23,90;x = 3 5 9

3、 3 10 67 3 23 90 plot(x)11.21.41.61.822.22.42.62.830102030405060708090第一列第二列第三列 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=x1;x2;x3; y=y1;y2;y3; plot(x,y,x1,y1-1,r-*)02468101214-2-1.5-1-0.500.511.522.53x1,y1-1x,y三列三列线型、描点类型、颜色

4、参数表线型、描点类型、颜色参数表 线条属性的修改线条属性的修改色彩色彩字符字符说明说明线型线型字符字符说明说明描点描点类型类型说明说明描点描点类型类型说明说明r红红-实线(默认)实线(默认).点点右三角形右三角形【例例3.2-2】画标准正态分布的密度函数图像。画标准正态分布的密度函数图像。 x = -3 : 0.25 : 3; y = normpdf(x, 0, 1); plot(x, y, -ro,. LineWidth,2,. MarkerEdgeColor,k,. MarkerFaceColor,0.49, 1, 0.63,. MarkerSize,12) xlabel(X); ylab

5、el(Y); -3-2-1012300.050.10.150.20.250.30.350.4XY2. loglog函数:双对数坐标绘图函数:双对数坐标绘图 x = logspace(-1,2); loglog(x,exp(x),-s) grid on% 为为X轴,轴,Y轴加标签轴加标签 xlabel(X); ylabel(Y); 3. semilogx,semilogy函数:半对数坐标绘图函数:半对数坐标绘图 x = 0 : 0.1 : 10; semilogy(x, 10.x) xlabel(X); ylabel(Y);4. polar函数:极坐标绘图函数:极坐标绘图 t = 0 : 0.0

6、1 : 2*pi; polar(t, sin(2*t).*cos(2*t),-r)5. plotyy函数:双纵坐标绘图函数:双纵坐标绘图 x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); ax = plotyy(x,y1,x,y2,plot); xlabel(X); set(get(ax(1),Ylabel),string,Left Y); set(get(ax(2),Ylabel),string,Right Y); 双纵坐标绘图双纵坐标绘图2022-6-30二、二维图形修饰和添加注释二

7、、二维图形修饰和添加注释 可以通过可以通过MATLAB命令对图形进行修饰和添加注释,也可命令对图形进行修饰和添加注释,也可以通过图形窗口的菜单项和工具栏完成这些工作。后者通过以通过图形窗口的菜单项和工具栏完成这些工作。后者通过鼠标点击操作,相对比较简单,下面仅对相关命令进行介绍鼠标点击操作,相对比较简单,下面仅对相关命令进行介绍81012141618202224020040060080010001200DISTANCE (cm)INTENSITY (lux)Light Intensity as a Function of DistanceComparison between theory an

8、d experiment.TheoryExperimentPlot titley axislabelx axislabelTextTick-mark label二维绘图的图例标注说明二维绘图的图例标注说明Data symbolLegendTick-mark hold 函数:开启和关闭图形窗口的图形保持功能函数:开启和关闭图形窗口的图形保持功能 axis 函数:设置坐标系的刻度和显示方式函数:设置坐标系的刻度和显示方式 grid 函数:为当前坐标系添加网格函数:为当前坐标系添加网格 title 函数:为当前坐标系添加标题函数:为当前坐标系添加标题 xlabel和和ylabel 函数:为当前坐标轴

9、添加标签函数:为当前坐标轴添加标签 text函数:在当前坐标系中添加文本对象(函数:在当前坐标系中添加文本对象(text对象)对象) gtext函数:在当前坐标系中交互式添加文本对象函数:在当前坐标系中交互式添加文本对象 legend函数:在当前坐标系中添加函数:在当前坐标系中添加line对象和对象和patch对象的对象的图形标注框图形标注框 annotation函数:在当前图形窗口建立注释对象函数:在当前图形窗口建立注释对象(annotation对象)对象) P = 3 1; 1 4; r = 5; V, D = eig(P); a = sqrt(r/D(1); b = sqrt(r/D(4

10、); t = linspace(0, 2*pi, 60); xy = V*a*cos(t); b*sin(t); plot(xy(1,:),xy(2,:), k, linewidth, 3); h = annotation(textarrow,0.606 0.65,0.55 0.65);【例例3.2-3】根据椭圆方程根据椭圆方程 绘制椭圆曲线,绘制椭圆曲线,并修饰图形。并修饰图形。31514xxyy set(h, string,3x2+2xy+4y2 = 5, fontsize, 15); h = title(这是一个椭圆曲线这是一个椭圆曲线, fontsize, 18, fontweight

11、, bold); set(h, position, -0.00345622 1.35769 1.00011); axis(-1.5 1.5 -1.2 1.7); xlabel(X); ylabel(Y); a = -19.6749 22.2118 5.0905; fun = (a,x)a(1)+a(2)/2*(x-0.17).2+a(3)/4*(x-0.17).4; x = 0:0.01:1; y = fun(a, x); plot(x,y); xlabel(X); ylabel(Y = f(X); text(Interpreter,latex,.String,$-19.6749+frac22

12、.21182(x-0.17)2. +frac5.09054(x-0.17)4$,Position,0.05, -12,.FontSize,12);【例例3.2-4】绘制曲线绘制曲线并添加曲线方程。并添加曲线方程。2422.21185.090519.6749(0.17)(0.17)24xx三、常用统计绘图函数三、常用统计绘图函数常用统计绘图函数列表常用统计绘图函数列表 x = normrnd(0, 1, 1000, 1); hist(x, 20); xlabel(样本数据样本数据); ylabel(频数频数) ; figure; cdfplot(x); 【例例3.2-6】用用normrnd函数产

13、生函数产生1000个标准正态分布随机数,并个标准正态分布随机数,并做出频数直方图和经验分布函数图。做出频数直方图和经验分布函数图。频数直方图频数直方图经验分布函数图经验分布函数图四、特殊二维绘图函数四、特殊二维绘图函数特殊二维绘图函数列表特殊二维绘图函数列表 subplot(3, 3, 1); f = (x)200*sin(x)./x; fplot(f, -20 20); title(y = 200*sin(x)/x); subplot(3, 3, 2); ezplot(x2 + y2 = 1, -1.1 1.1); axis equal; title(单位圆单位圆); subplot(3,

14、3, 3); ezpolar(1+cos(t); title(心形图心形图); subplot(3, 3, 4); x = 10 10 20 25 35; 【例例3.2-7】特殊二维图形。特殊二维图形。 name = 赵赵, 钱钱, 孙孙, 李李, 谢谢; explode = 0 0 0 0 1; pie(x, explode, name) title(饼图饼图); subplot(3, 3, 5); stairs(-2*pi:0.5:2*pi,sin(-2*pi:0.5:2*pi); title(楼梯图楼梯图); subplot(3, 3, 6); stem(-2*pi:0.5:2*pi,s

15、in(-2*pi:0.5:2*pi); title(火柴杆图火柴杆图); subplot(3, 3, 7); Z = eig(randn(20,20); compass(Z); title(罗盘图罗盘图); subplot(3, 3, 8); theta = (-90:10:90)*pi/180; r = 2*ones(size(theta); u,v = pol2cart(theta,r); feather(u,v); title(羽毛图羽毛图); subplot(3, 3, 9); t = (1/16:1/8:1)*2*pi; fill(sin(t), cos(t),r); axis sq

16、uare; title(八边形八边形);2022-6-30第三节第三节 三维图形绘制三维图形绘制2022-6-30一、常用三维绘图函数一、常用三维绘图函数 t = linspace(0, 10*pi, 300); plot3(20*sin(t), 20*cos(t), t, r, linewidth, 2); hold on %图形保持图形保持 quiver3(0,0,0,1,0,0,25,k,filled,LineWidth,2); quiver3(0,0,0,0,1,0,25,k,filled,LineWidth,2); quiver3(0,0,0,0,0,1,40,k,filled,Li

17、neWidth,2); grid on xlabel(X); ylabel(Y); zlabel(Z); axis(-25 25 -25 25 0 40); view(-210,30); 【例例3.3-1】用用plot3函数绘制三维螺旋线。函数绘制三维螺旋线。 x,y = meshgrid(1:4, 2:5)x = 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4y = 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 plot(x, y, r,x, y, r, x, y, k.,markersize,18); axis(0 5 1 6); xlabel(X); y

18、label(Y); 【例例3.3-2】用用meshgrid函数生成网格矩阵,并用函数生成网格矩阵,并用plot函数画出平函数画出平面网格图形。面网格图形。 X,Y = meshgrid(-2:.2:2); Z = X.*exp(-X.2 - Y.2); DX,DY = gradient(Z,0.2,0.2); contour(X,Y,Z) ; hold on ; quiver(X,Y,DX,DY) ; h = get(gca,Children); set(h, Color,k); 【例例3.3-3】绘制三维曲面绘制三维曲面 的等高线图和梯度场。的等高线图和梯度场。22()xyzxe x = l

19、inspace(-3,3,20); y = linspace(-9,9,20); X, Y = meshgrid(x,y); Z = mvnpdf(X(:) Y(:), 0 0, 1 2;2 9); Z = reshape(Z, size(X); subplot(2, 2, 1); mesh(X, Y, Z); title(mesh); 【例例3.3-4】用用mesh,surf,surfl,surfc函数绘制二元正态分布的函数绘制二元正态分布的密度函数图。密度函数图。 subplot(2, 2, 2); surf(X, Y, Z); alpha(0.5); title(surf); subpl

20、ot(2, 2, 3); surfl(X, Y, Z); title(surfl); subplot(2, 2, 4); surfc(X, Y, Z); title(surfc); x,y=meshgrid(0:0.25:4*pi); z=sin(x+sin(y)-x/10; mesh(x,y,z); axis(0 4*pi 0 4*pi -2.5 1);【例例3.3-5】绘制三维曲面图绘制三维曲面图z=sin(x+sin(y)-x/10。05100510-2.5-2-1.5-1-0.500.51% 绘制圆柱面绘制圆柱面 subplot(2,2,1); x,y,z = cylinder; su

21、rf(x,y,z); % 绘制哑铃面绘制哑铃面 subplot(2,2,2); t = 0:pi/10:2*pi; X,Y,Z = cylinder(2+cos(t); surf(X,Y,Z);【例例3.3-6】调用函数绘制柱面,球面,椭球面。调用函数绘制柱面,球面,椭球面。% 绘制球面,半径为绘制球面,半径为10,球心,球心 (1,1,1) subplot(2,2,3); x,y,z = sphere; surf(10*x+1,10*y+1,10*z+1); axis equal;% 绘制椭球面绘制椭球面 subplot(2,2,4); a=4; b=3; t = -b:b/10:b; x,

22、y,z = cylinder(a*sqrt(1-t.2/b2),30); surf(x,y,z); 2022-6-30-101-10100.51-505-50500.51-50510-50510-50510-505-50500.51% 饼图饼图 subplot(2,3,1); pie3(2347,1827,2043,3025); title(三维饼图三维饼图); % 柱状图柱状图 subplot(2,3,2); bar3(magic(4); title(三维柱状图三维柱状图); 【例例3.3-7】绘制三维饼图、三维柱状图、三维火柴杆图、三维填绘制三维饼图、三维柱状图、三维火柴杆图、三维填充图、

23、三维向量场图和立体切片图(四维图)充图、三维向量场图和立体切片图(四维图).% 火柴杆图火柴杆图 subplot(2,3,3); y=2*sin(0:pi/10:2*pi); stem3(y); title(三维火柴杆图三维火柴杆图); % 填充图填充图 subplot(2,3,4); fill3(rand(3,5),rand(3,5),rand(3,5), y ); title(三维填充图三维填充图); % 三维向量场图三维向量场图 subplot(2,3,5); X,Y = meshgrid(0:0.25:4,-2:0.25:2); Z = sin(X).*cos(Y); Nx,Ny,Nz

24、 = surfnorm(X,Y,Z); surf(X,Y,Z); hold on; quiver3(X,Y,Z,Nx,Ny,Nz,0.5); title(三维向量场图三维向量场图); axis(0 4 -2 2 -1 1); % 立体切片图(四维图)立体切片图(四维图) subplot(2,3,6); t = linspace(-2,2,20); X,Y,Z = meshgrid(t,t,t); V = X.*exp(-X.2-Y.2-Z.2); xslice = -1.2,.8,2; yslice = 2; zslice = -2,0; slice(X,Y,Z,V,xslice,yslice

25、,zslice); title(立体切片图(四维图)立体切片图(四维图)); ezsurf(u*sin(v),u*cos(v), u,-2*pi,2*pi,-2*pi,2*pi)【例例3.3-8】调用调用ezsurf函数绘制圆锥面函数绘制圆锥面sincosxuvyuvzu ezsurf(u*sin(v),u*cos(v), 4*v,-2*pi,2*pi,-2*pi,2*pi)【例例3.3-9】调用调用ezsurf函数绘制螺面函数绘制螺面sincos4xuvyuvzv ezmesh(3*cos(u)*sin(v),2*cos(u)*cos(v),sin(u),-2*pi,2*pi,-2*pi,2

26、*pi)【例例3.3-10】调用调用ezsurf函数绘制椭球面函数绘制椭球面3cos sin2cos cossinxuvyuvzu二、三维图形的修饰和添加注释二、三维图形的修饰和添加注释1. 绘图色彩的调整绘图色彩的调整colormap 函数函数 colormap(map),设置,设置map为当前颜色映像矩阵为当前颜色映像矩阵 colormap(default),恢复当前颜色映像矩阵为默认值,恢复当前颜色映像矩阵为默认值 cmap = colormap,获取当前颜色映像矩阵,获取当前颜色映像矩阵 colormap(ax,),设置当前,设置当前axes对象的颜色映像矩阵对象的颜色映像矩阵 MAT

27、LAB中提供了中提供了colormap函数,可以根据颜色映像矩阵函数,可以根据颜色映像矩阵对图形对象的色彩进行调整。所谓的颜色映像矩阵就是一个对图形对象的色彩进行调整。所谓的颜色映像矩阵就是一个 的矩阵,的矩阵,k行表示有行表示有k种颜色,每行种颜色,每行3个元素分别代表红、绿、个元素分别代表红、绿、蓝三元色的灰度值,取值均在蓝三元色的灰度值,取值均在0,1之间。之间。3kmap的设置有两种,可以人为指定一个元素值均在的设置有两种,可以人为指定一个元素值均在0,1之间的之间的 的矩阵,也可以用的矩阵,也可以用MATLAB自带的自带的17种颜色映像矩阵。在种颜色映像矩阵。在MATLAB命令窗口分

28、别运行命令窗口分别运行autumn、bone、colorcube、cool、copper、flag、gray、hot、hsv、jet、lines、pink、prism、spring、summer、white和和winter函数,就可得到这函数,就可得到这17种颜色映像矩阵种颜色映像矩阵2. 着色方式调整着色方式调整shading 函数函数 shading flat,平面着色,同一个小网格面和相应的线段,平面着色,同一个小网格面和相应的线段用同一种颜色着色。用同一种颜色着色。 shading faceted,类似于,类似于shading flat,平面着色,只是,平面着色,只是网格线都用黑色,这

29、是默认着色方式。网格线都用黑色,这是默认着色方式。 shading interp,通过颜色插值方式着色。,通过颜色插值方式着色。 shading(axes_handle,),为句柄值为,为句柄值为axes_handle的坐标的坐标系内的图形对象设置着色方式。系内的图形对象设置着色方式。3. 透明度调整透明度调整 利用利用alpha函数函数调整透明度调整透明度 调用:调用:alpha(alpha_data) 说明:说明:alpha_data是一个介于是一个介于0和和1之间的数,之间的数,alpha_data = 0表示完全透明,表示完全透明,alpha_data = 1表示完全不透明,表示完全不

30、透明,alpha_data 的值越接近于的值越接近于0,透明度越高,透明度越高 通过图形对象的通过图形对象的“FaceAlpha”属性调整透明度属性调整透明度 调用:调用:set(h,FaceAlpha,0.25); 说明:说明:h为图形对象句柄,为图形对象句柄,0.25是是“FaceAlpha”属性的属属性的属性值,由用户随意指定。性值,由用户随意指定。 figure; X,Y,Z = sphere; surf(X,Y,Z); colormap(lines); shading interp hold on; mesh(2*X,2*Y,2*Z) hidden off axis equal ax

31、is off figure; surf(X,Y,Z,FaceColor,r); hold on; surf(2*X,2*Y,2*Z,FaceAlpha,0.4); axis equal axis off【例例3.3-11】三维图形的透视效果三维图形的透视效果4. 光源设置与属性调整光源设置与属性调整 light函数函数 light(PropertyName,propertyvalue,) 建立一个光源,并设置光源属性(建立一个光源,并设置光源属性(Position、Color和和Style)Position是位置属性,设置光源位置,其属性值为三个元是位置属性,设置光源位置,其属性值为三个元素的

32、向量素的向量x, y, z,即光源的三维坐标;,即光源的三维坐标;Color是颜色属性,是颜色属性,设置光源颜色,其属性值可以是代表颜色的字符(如表设置光源颜色,其属性值可以是代表颜色的字符(如表3.2-1所列),也可以是由红、绿、蓝三元色的灰度值组成的向所列),也可以是由红、绿、蓝三元色的灰度值组成的向量;量;Style是光源类型属性,设置光源类型,其取值为字符是光源类型属性,设置光源类型,其取值为字符串串 infinite 或或 local,分别表示平行光源和点光源。,分别表示平行光源和点光源。 handle = light() 建立一个光源,并获取其句柄值建立一个光源,并获取其句柄值ha

33、ndle,之后可以通过,之后可以通过get(handle)查看光源的所有属性,也可以通过查看光源的所有属性,也可以通过set(handle, PropertyName,propertyvalue,)设置光源的属性值。设置光源的属性值。5. 调整光照模式调整光照模式 lighting函数函数 lighting flat,产生均匀光照,选择此方法,以查看面对,产生均匀光照,选择此方法,以查看面对象,是光照模式的默认设置。象,是光照模式的默认设置。 lighting gouraud,计算顶点法线并作线性插值修改表面,计算顶点法线并作线性插值修改表面颜色,选择此方法,以查看曲面对象。颜色,选择此方法,

34、以查看曲面对象。 lighting phong,做线性插值并计算每个像素的反射率来,做线性插值并计算每个像素的反射率来修改表面颜色,选择此方法,以查看曲面对象。此方法比修改表面颜色,选择此方法,以查看曲面对象。此方法比lighting gouraud的效果好,但是用于渲染的时间较长。的效果好,但是用于渲染的时间较长。 lighting none,关掉照明。,关掉照明。6. 图形表面对光照反射属性设置图形表面对光照反射属性设置 material函数函数 material shiny,使图形对象有相对较高的镜面反射,镜使图形对象有相对较高的镜面反射,镜面光的颜色仅取决于光源颜色。面光的颜色仅取决于

35、光源颜色。 material dull,使图形对象有更多的漫反射,反射光的颜使图形对象有更多的漫反射,反射光的颜色仅取决于光源颜色。色仅取决于光源颜色。 material metal,使图形对象有非常高的镜面反射和非常使图形对象有非常高的镜面反射和非常低的环境光及漫反射,反射光的颜色取决于光源颜色和图低的环境光及漫反射,反射光的颜色取决于光源颜色和图形表面的颜色。形表面的颜色。 material(ka kd ks) material(ka kd ks n) material(ka kd ks n sc),用用ka、kd和和ks分别设置图形对分别设置图形对象的环境光、漫反射和镜面反射的强度,用镜

36、面指数象的环境光、漫反射和镜面反射的强度,用镜面指数n控制控制镜面亮点的大小,用镜面亮点的大小,用sc设置镜面颜色的反射系数。设置镜面颜色的反射系数。ka、kd、ks、n和和sc均为标量,均为标量,sc的取值介于的取值介于0和和1之间。之间。 material default,恢复恢复ka、kd、ks、n和和sc的默认值。的默认值。7. 调整视点位置调整视点位置 view函数函数 view(az,el),设置三维绘图的视角,设置三维绘图的视角, az是方位角,是方位角,el表示表示相对于相对于xoy平面的仰角,。平面的仰角,。zyx-y视点az方位角el仰角 view(x,y,z),设置视点的三维直角坐标,设置视点的三维直角坐标x, y, z. view(2),设置默认的二维视角,设置默认的二维视角,az = 0, el = 90. view(3),设置默认的三维视角,设置默认的三维视角,az = -37.5, el = 30. view(a

温馨提示

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

评论

0/150

提交评论