1、MATLAB与控制系统仿真第5章MATLAB语言的绘图基础引言nMATLAB除了强大的数值分析功能之外,还提供了功能强大、使用方便的绘图功能。n只需指定绘图方式,并提供充足的绘图数据,就可以得到所需的图形。n可根据需要应用MATLAB的图形修饰功能对图形进行适当的修饰。n主要介绍二维图形、三维图形、符号函数及特殊应用图形的绘制,也对图形修饰作初步介绍,并给出示例。主要内容n5.1二维图形的绘制n5.1.1 绘制二维图形的基本函数及示例n5.1.2 图形的修饰及示例n5.1.3 多图的绘制问题n5.1.4 二维特殊应用图形的绘制n5.2三维图形的绘制n5.2.1 三维图形绘制函数n5.2.2 三
2、维图形绘制举例主要内容(续)n5.3 图形的图形化编辑n5.4符号函数绘制图形n5.4.1 符号函数绘制图形的函数及示例n5.4.2 符号函数的图形化绘制方式n本章小结5.1二维图形的绘制5.1.1 绘制二维图形的基本函数n绘制二维曲线的最基本函数plot,它的基本调用格式为:plot(x,y)n其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。n注:函数帮助文档导读n注:演示例1绘制的图形。plot函数参数为其它情况时nx,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。n注:演示例2分析对应用作图的结果。1256,34812XY(,)plot
3、 x yplot函数参数为其它情况时nx是向量,y是有一维与x同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。n注:演示例3分析程序运行结果。plot函数参数为其它情况时n最简单的调用格式 plot(x)plot(x)n这种调用格式以x为纵坐标,系统根据x向量的元素序号自动生成从1开始的向量作为横坐标。n如果x为复向量时,则plot(x)相当于 plot(real(x),imag(x),即以实部为横坐标,以虚部为纵坐标。plot函数参数为其它情况时n注:演示例4某工厂2000年各月总产值(单位:万元)分别为22、60、88、95、56、23
4、、9、10、14、81、56、23,试绘制折线图以显示出该厂总产值的变化情况。n注:演示例5分析所给图形绘制程序结果并与例2作比较。5.1.2 图形的修饰及示例nMATLAB给出了图形属性进行设置的参数,便于进行修饰。这些修饰主要包括:n对线型的修饰n对点类型的设置n对曲线颜色的设置n特殊字符的添加n文字标注n坐标的设置等。图形参数的设置曲线颜色曲线线型数据点形选项意义选项意义选项意义bBlue,蓝色实线(默认)实点cCyan,青色:点线十字形gGreen,绿色点划线o圆圈kBlack,黑色虚线*星号mMagenta红紫色叉号rRed,红色s正方形wWhite,白色d菱形yYellow,黄色h
5、六角形p五角形下三角上三角右三角左三角图形参数的设置n注:演示例6用不同的修饰方式画出和曲线 图形坐标轴手工设置nplot函数根据坐标参数自动确定坐标轴的范围。n可根据需要用坐标控制命令axis控制坐标的特性,基本用法为:axis(xmin xmax ymin ymax)%设定横坐标与纵坐标的起始与终止值n注:查找axis帮助文档,了解更多用法。图形坐标轴手工设置n注:演示例7比较两个程序的不同结果。坐标背景网络手工设置n坐标背景网络可用grid命令设置n其基本用法 ngrid on%显示网格线ngrid off%去除网格线ngrid%切换有无网格的状态n注:演示例8为例1的图形加上网络线。坐
6、标框手工设置n坐标框的设置,其基本用法:nbox on%添加坐标边界nbox off%去除坐标边界nbox%切换有无坐标边界的状态n坐标框的设置与grid类似,可依照上例练习。图形标注的添加n图形的标注,可以分为图名标注、坐标轴标注、图例标注和文字注释。n图名标注:title(string)n坐标轴标注:xlabel(string),ylabel(string)为横纵坐标添加标注。n图例标注:legend(string1,string2,.)命令的不同形式为图形添加图例。n文字注释:text(x,y,string)在图形坐标(x,y)处书写注释。图形标注所用特殊字符alphageqbetane
7、qgammaequivdeltaapproxomegaleqzetaleftarrowetauparrowlambdadownarrowxirightarrowpi对字体大小、风格等进行设置n允许用户对字体大小、风格等进行设置。如:n通过“fontnamefontname”进行字体名称的设置n通过“fontsizefontsize”进行字体大小的设置n通过“bf”(表示黑体),“it”(表示斜体),“rm”(表示正体)等设置字体风格n通过string、_string设置“string”为上标或下标格式。图形标注的添加示例n注:演示例9对例1图形进行适当标注。图形标注的添加n可通过曲线的Line
8、Style,LineWidth,Marker,MarkerEdgeColor,MarkerFaceColor,MarkerSize的各属性值设定曲线的属性。n注:演示例10观察所给程序运行结果。5.1.3 多图的绘制问题n很多时候,将不同图形绘制在一幅图上是必需的。这涉及到多图绘制的问题。n多图绘制有不同方法。如例3就将不同的曲线同时绘制在了一个坐标图中。n总结一下,可以有以下几种方法。使用subplot函数绘制nsubplot函数基本用法如下:nsubplot(m,n,p)%将图形窗口分为mn幅子图,第p幅成为当前图nsubplot(mnp)%意义同上,省略“,”使用subplot函数绘制n
9、注:函数帮助文档导读n注:演示例11用subplot函数画多个子图。使用subplot函数绘制n多图绘制时各个子窗口不必都是plot函数绘制的曲线。下例显示了不同类型图形在同一幅图形上绘制的情形。n注:演示例12在同一图上绘制不同类型图形。通过hold命令保持上次的图形nhold 基本用法如下:nhold onhold on%保持当前坐标系和图形nhold offhold off%不保持当前坐标系和图形nholdhold%切换以上两种状态通过hold命令保持上次的图形n注:hold函数帮助文档导读n注:演示例13使用hold命令进行多图绘制。通过hold命令保持上次的图形n注:演示例14结合程
10、序设计和绘图知识,完成以下要求:一个简单的二元二次迭代式(Hnon映射)为绘制这个迭代得到的二元点(相空间)的轨迹图形。2111nnnnnxaxyybx 使用figure指定不同图形窗口n系统默认使用“Figure No.1”窗口绘制图形。当第二次继续绘图时,仍在默认窗口绘制的话,即将以前的图形覆盖掉了。为此,可以使用figure(h)来指定打开相应窗口。n注:演示例15使用figure指定不同图形窗口绘制多图。使用plotyy绘制双纵坐标图nplotyy绘制出的图形两边都有标注。nplotyy(X1,Y1,X2,Y2)以左右不同纵轴绘制2条曲线。n左纵坐标与横坐标组成的坐标系用于(X1,Y1
11、)数据n右纵坐标与横坐标组成的坐标系用于(X2,Y2)数据。使用plotyy绘制双纵坐标图n注:演示例16使用plotyy绘制双纵坐标图。5.1.4 二维特殊应用图形的绘制loglog(X1,Y1,.)对数图bar(x,Y),barh(.)二维条形图semilogx(Y)semilogy(.)半对数图hist(Y,x)直方图stairs(X,Y)阶梯图pareto(Y,X)Pareto图,排列图area(X,Y)填充绘图errorbar(X,Y,L,U)误差限图pie(X)饼状图stem(X,Y)火柴杆图feather(U,V)羽状图polar(theta,rho)极坐标图comet慧星状图c
12、ompass(U,V)罗盘图spy(S)稀疏模式图5.1.4 二维特殊应用图形的绘制n注:演示例17对数组X=Y=0:1000,试用对数函数、半对数函数绘制其曲线。n注:演示例18分析所给程序及其所画图形。5.2三维图形的绘制概述n三维图形的绘制包括:n三维曲线n三维网线图n三维曲面图形5.2.1 三维图形绘制函数 n三维曲线绘制函数的基本调用格式:plot3(X1,Y1,Z1,.)n其中X1,Y1,Z1为维数相同的向量,分别存储三个坐标的值。n类似于plot函数,plot3也可以绘制多条曲线,并可以分别对不同曲线进行修饰。5.2.1 三维图形绘制函数n绘制三维网线图和曲面图基本函数及调用格式
13、见下表。除表所示基本调用格式外,MATLAB允许用户进行更精细的控制。可进一步查阅相关帮助文档。mesh(X,Y,Z)常用的网线图调用格式surf(X,Y,Z)常用的曲面图调用格式contour(X,Y,Z)常用的等高线调用格式三维网线图和曲面图的区别n网线图线条有颜色,而空挡无颜色;n曲面图的线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化)三维图形绘制步骤n绘制函数z=f(x,y)所代表的三维空间曲面,需要做以下数据准备:n确定自变量x,y的取值范围和取值间隔。x=x1:dx:x2;y=y1:dy:y2x=x1:dx:x2;y=y1:dy:y2n构成xy平面上的自变
14、量“格点”矩阵。X,Y=meshgrid(x,y)X,Y=meshgrid(x,y)n计算在自变量采样“格点”上的函数值Z=f(X,Y)Z=f(X,Y)5.2.2 三维图形绘制举例n注:演示例19绘制 所表示的曲线。cos()sin()xtytzt5.2.2 三维图形绘制举例n注:演示例20绘制二元方程 的三维曲面,x,y的取值范围分别为-8,8。2222sin()xyzxy5.3 图形的图形化编辑5.3 图形的图形化编辑n可以利用图形窗口的编辑功能。n图形窗口不仅可以被动显示图形,而且还允许用户对图形进行编辑操作。n图形窗口提供丰富的菜单选项,可以不同方式观看图形,也可对图形对象的属性进行编
15、辑。5.3 图形的图形化编辑n利用数组编辑器(Array Editor)中进行图形编辑。n利用数组编辑器可对选中的数据直接进行绘图,也可以选择图形类型。5.4符号函数绘制图形 n为了将符号函数的数值计算结果可视化,M A T L A B 提 供 了 相 应 绘 图 函 数。n这些函数的特点是无需数据准备,直接画出字符串函数或符号函数的图形。n这一系列函数名称的前两个字符冠以“ez”,其含义就是“Easy-to-use”。5.4.1 符号函数绘制图形的函数 函数说明函数说明ezplot(fun,min,max)ezplot(fun,min,max)二维曲线ezsurf(fun,domezsurf
16、(fun,domain)ain)曲面图ezplot3(funx,funy,funzezplot3(funx,funy,funz,tmin,tmax),tmin,tmax)三维曲线ezsurfc(fun,doezsurfc(fun,domain)main)画带等位线的曲面图ezpolar(fun,a,b)ezpolar(fun,a,b)极坐标ezmesh(fun,domezmesh(fun,domain)ain)画网线图ezcontourf(fun,domain)ezcontourf(fun,domain)填色等位图ezmeshc(fun,doezmeshc(fun,domain)main)画带
17、等位线的网线图ezcontour(fun,domain)ezcontour(fun,domain)等高线符号函数绘制图形举例n注:演示例21绘制三维符号表达式曲线。cos()sin()xtytzt5.4.2 符号函数的图形化绘制方式 n符号函数绘制也可以通过图形化的方式进行。MATLAB提供了图形化的符号函数计算器“funtool”n注:演示funtool工具的使用本章小结 n用户应用MATLAB,只需指定绘图方式,并提供充足的绘图数据,就可以得到所需的图形。也可对图形加以修饰。n二维图形的绘制基本函数为plot。本章给出了二维多图绘制的4种基本方法。n三维图形分为三维曲线、三维网线图和三维曲线图。三维网线图和曲面图的绘制比三维曲线图稍显复杂。本章小结(续)n符号函数图形绘制。对符号函数或是无法求出函数参数之间显式关系的隐函数,可以使用符号函数绘制图形的函数。n图形化绘制图形方式使用简捷。实际绘制图形中可以根据需要使用这种方法。