1、2019/4/14,第8章 图 形 处 理,1,第8章 图 形 处 理,教学目标教学重点教学过程,第8章 图 形 处 理,2,教学目标,MATLAB 7语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。 学习完本章之后,读者将学会使用MATLAB 7的图形处理功能,包括基本的绘图命令、图形的简单控制、图形窗口的编辑以及图形的高级控制等。,2019/4/14,第8章 图 形 处 理,3,教学重点,基本的绘图命令 各种图形注释方法 三维图形的绘制方法,2019/4/14,第8章 图 形 处 理,4,教学过程,基本的绘图命令 各种图形注释方法 三维图形的绘制方法 特殊一些特殊图形的绘制
2、图形的高级控制技巧,2019/4/14,第8章 图 形 处 理,5,1. 基本的绘图命令,基本的绘图命令 绘图的一般步骤 绘制二维曲线图 极坐标图形的绘制 多个图形的绘制方法 曲线的色彩、线型和数据点型,2019/4/14,第8章 图 形 处 理,6,(1)基本的绘图命令,绘制基本线性图的函数表,2019/4/14,第8章 图 形 处 理,7,(2)绘图的一般步骤,基本的绘图步骤,2019/4/14,第8章 图 形 处 理,8,(3)绘制二维曲线图,二维曲线图在MATLAB 7中的绘制是最为简便的。如果将X轴和Y轴的数据分别保存在两个向量中,同时向量的长度完全相等,那么可以直接调用函数进行二维
3、图形的绘制。在MATLAB 7中,使用plot函数进行二维曲线图的绘制。,2019/4/14,第8章 图 形 处 理,9,绘制二维曲线图, x= 0:0.01:10; y=tan(x); plot(x,y) ,2019/4/14,第8章 图 形 处 理,10,(4)极坐标图形的绘制,MATLAB提供了polar函数来在极坐标下绘制图形 : x= 0:0.01:10; y1=sin(x); y2 = cos(x-2.5); polar(y1,y2,-r+) ,2019/4/14,第8章 图 形 处 理,11,(5)多个图形的绘制方法,subplot函数 可以实现多个图形的绘制: x = 0:.1
4、:20; subplot(2,2,1) plot(x,sin(x); ,2019/4/14,第8章 图 形 处 理,12,多个图形的绘制方法, x = 0:.1:20; subplot(2,2,2) plot(x,cos(x); ,2019/4/14,第8章 图 形 处 理,13,多个图形的绘制方法, subplot(2,2,3) x = 0:.1:2; y1=tan(x); plot(x,y1,-b*); ,2019/4/14,第8章 图 形 处 理,14,(6)曲线的色彩、线型和数据点型,曲线的色彩、线型和数据点型参数定义,2019/4/14,第8章 图 形 处 理,15,2. 图形注释,
5、图题的标注 坐标轴的标签 文本标注和交互式文本标注 图例的添加 坐标网格的添加 使用矩形或是椭圆在图形中圈出重要部分,2019/4/14,第8章 图 形 处 理,16,(1) 图题的标注,在MATLAB中,通常可以使用3种方式给图形添加图题: 使用Insert 菜单中的Title命令; 使用属性编辑器(Property Editor); 使用title函数。,2019/4/14,第8章 图 形 处 理,17,图题的标注, x = 0:.1:2; y1=sin(x); y2 = sin(x-0.25); y3 = sin(x-0.5); plot(x,y1,-.b, x,y2,-r*, x,y3
6、,-.gh) title(There three lines) ,2019/4/14,第8章 图 形 处 理,18,(2) 坐标轴的标签,在MATLAB 7中,可以使用如下3种方式给图形的坐标轴添加标签: 使用Insert菜单下的Label选项; 使用属性编辑器(Property Editor); 使用MATLAB 7的添加标签命令;,2019/4/14,第8章 图 形 处 理,19,坐标轴的标签添加举例,使用属性编辑器(Property Editor)添加坐标轴标签打开Tools菜单,选择Edit Plot命令,激活图形编辑状态。 在图形框内双击空白区域,调出属性编辑器;也可以采取在图形框内
7、右击,从弹出的菜单中选择Properties 项的方式调出属性编辑器;或者是在View菜单中选择Property Editor项。,2019/4/14,第8章 图 形 处 理,20,(3)文本标注和交互式文本标注,用户可以在MATLAB 7图形窗口的任意地方添加文本注释,从而更好地解释图形窗口的数据。MATLAB 7提供了text函数和gtext函数来进行文本标注。其中gtext函数的使用形式更为灵活,可以实现交互式文本标注。,2019/4/14,第8章 图 形 处 理,21,文本标注举例, x=linspace(-3,5,100); y=cos(x); z=sin(x); plot(x,y,
8、x,z) title(一条正弦曲线和一条余弦曲线) xlabel(x的取值范围) ylabel(Y和Z的值) ,2019/4/14,第8章 图 形 处 理,22,(4)图例的添加,为了更好地区分所绘制的多条曲线,可以使用图例加以说明,对它们表示的数据进行更准确的区分。可以使用如下3种方法生成图例: 打开Insert 菜单中并选择Legend命令; 单击工具栏中的legend图标; 使用legend函数。,2019/4/14,第8章 图 形 处 理,23,图例的添加 举例,2019/4/14,第8章 图 形 处 理,24,(5)坐标网格的添加,在图形绘制过程中,为了精确地知道图形上某点的坐标,需
9、要绘制坐标网格来定位,MATLAB 7语言中提供了grid函数来实现这一功能: grid off命令关闭坐标网格; grid on命令打开坐标网格 grid mirror命令使用更细化的网格; grid(AX,)命令使用AX坐标系代替当前坐标系。,2019/4/14,第8章 图 形 处 理,25,坐标网格的添加举例, x=linspace(-5,5,100); y=x.4+22*x.2-6*x+10; plot(x,y) grid on ,2019/4/14,第8章 图 形 处 理,26,(6) 使用矩形或是椭圆在图形中圈出重要部分,用户可以使用矩形或是椭圆在图形中圈出特别的区域,从而使得该区
10、域能引起特别的注意。当其中的一个矩形或是椭圆被选中时,用户可以移动并改变它的大小,或是右击它,在弹出的快捷菜单中用户可以选择改变它的属性和外观。,2019/4/14,第8章 图 形 处 理,27,应用举例,当右击矩形或是椭圆时,将弹出一个菜单,2019/4/14,第8章 图 形 处 理,28,3. 三维图形的绘制,MATLAB语言提供了三维图形的处理功能。与二维图形相似,绘制三维图形时可以使用MATLAB语言提供的相关函数: 三维线图指令plot3 三维网线图和曲面图 三维网线图 三维曲面图,2019/4/14,第8章 图 形 处 理,29,(1)三维线图指令plot3, % 该程序用于绘制三
11、维的螺旋曲线图 t = 0:pi/50:20*pi; plot3(sin(t),cos(2*t),sin(t)+cos(t),2019/4/14,第8章 图 形 处 理,30,(2) 三维网线图,使用mesh函数来绘制三维网格图形: z=peaks(50); mesh(z); ,2019/4/14,第8章 图 形 处 理,31,(3)三维曲面图,可是使用surf函数来绘制三维表面图形 : X,Y=meshgrid(-4:0.2:4); Z=exp(-0.5*(X.2Y.2); surf(X,Y,Z) ,2019/4/14,第8章 图 形 处 理,32,4. 特殊图形的绘制,条形图和面积图(Ba
12、r and Area Graphs) 饼形图(Pie Charts) 离散型数据图 方向和速度矢量图形 等高线的绘制(Contour Plots),2019/4/14,第8章 图 形 处 理,33,(1)条形图和面积图,条形图和面积图用于绘制向量和矩阵数据,这两种图形可以用来比较不同组数据的在总体数据中所占的比例,其中条形图适于表现离散型数据,而面积图适于表现连续型数据。,2019/4/14,第8章 图 形 处 理,34,条形图举例,集合式条形图的绘制 y=1 2 3 4 5 6 7 8 9 10 bar(y),2019/4/14,第8章 图 形 处 理,35,(2)饼形图,在统计学中,人们经
13、常要用到饼形图来表示各个统计量占总量的份额,饼形图可以显示向量或矩阵中的元素占所有元素总和的百分比,MATLAB提供了pie函数和pie3函数,分别用于绘制二维饼形图和三维饼形图。,2019/4/14,第8章 图 形 处 理,36,(3)离散型数据图,MATLAB 7提供了一系列适于表现离散型数据的函数。 其中常用的主要有stem 函数、stem3函数和stairs函数。,2019/4/14,第8章 图 形 处 理,37,离散型数据图举例,使用 stem(y)函数来绘制句柄状图形 。 y=rand(20,1); stem(y) ,2019/4/14,第8章 图 形 处 理,38,(4)方向和速
14、度矢量图形,MATLAB 7提供了一些函数用于绘制方向矢量和速度矢量图形,这些函数有compass、feather、quiver和quiver3。,2019/4/14,第8章 图 形 处 理,39,方向和速度矢量图形举例,用compass函数绘制矢量图形 : w=0:0.1:6; z=sin(w).*exp(j*w); compase(z) ,2019/4/14,第8章 图 形 处 理,40,(5)等高线的绘制,等高线函数为创建、显示并标注由一个或多个矩阵确定的等值线。,2019/4/14,第8章 图 形 处 理,41,等高线的绘制举例,使用contour函数绘制等高线图形: x,y,z=pe
15、aks; contour(x,y,z) ,2019/4/14,第8章 图 形 处 理,42,5. 图形的高级控制,视点控制和图形的旋转 颜色的使用 颜色映像理解 颜色映像使用 颜色映像显示 颜色映像的建立和修改 光照控制,2019/4/14,第8章 图 形 处 理,43,(1)视点控制和图形的旋转,为了使图形的效果更逼真,有时需要从不同的角度观看图形,MATLAB 7语言提供了view、viewmtx和rotate3d等3个命令进行操作。用户可以在命令窗口中调用这3个函数。其中,view函数主要是从不同的角度观察图形;viewmtx给出指定视角的正交转换矩阵;而rotate3d函数可以让用户方
16、便地用鼠标来适时旋转视图。,2019/4/14,第8章 图 形 处 理,44,视点控制举例,view函数的使用 : X,Y=meshgrid(-5:0.2:5); Z=exp(0.5*(X.2-Y.2); surf(X,Y,Z) view(30,60) ,2019/4/14,第8章 图 形 处 理,45,(2)颜色的使用,颜色映像理解 MATLAB 7有一个叫颜色映像的数据结构来代表颜色值。颜色映像定义为一个有3列和若干行的矩阵。利用0到1之间的数,矩阵的每一行都代表了一种色彩。任一行的数字都指定了一个RGB值,即红、黄、蓝3种颜色的强度,形成一种特定的颜色。,2019/4/14,第8章 图
17、形 处 理,46,颜色映像理解1,2019/4/14,第8章 图 形 处 理,47,颜色映像理解2,2019/4/14,第8章 图 形 处 理,48,颜色映像使用,句colormap(M)将矩阵M作为当前图形窗口所用的颜色映像。例如,colormap(cool)装入了一个有64个输入项的cool颜色映像。colormap default装入了默认的颜色映像(hsv)。 函数plot、plot3、contour和contour3不使用颜色映像,它们使用列在plot颜色和线形表中的颜色。而大多数其他绘图函数,比如mesh、surf、fill、pcolor和它们的各种变形函数,使用当前的颜色映像。,
18、2019/4/14,第8章 图 形 处 理,49,颜色映像显示,可以用多种途径来显示一个颜色映像。其中一个方法是观察颜色映像矩阵的元素: hot(8) ans =0.3333 0 00.6667 0 01.0000 0 01.0000 0.3333 01.0000 0.6667 01.0000 1.0000 01.0000 1.0000 0.50001.0000 1.0000 1.0000 ,2019/4/14,第8章 图 形 处 理,50,颜色映像的建立和修改,颜色映像就是矩阵,意味着你可以象其他数组那样对它们进行操作。函数brighten就利用这一点通过调整一个给定的颜色映像来增加或减少暗
19、色的强度。 用户可以通过生成m3的矩阵mamap来建立自己的颜色映像,并用colormap(mymap)来安装它。颜色映像矩阵的每一个值都必须在0和1之间。如果企图用大于或小于3列的矩阵或者包含着比0小比1大的任意值,函数colormap会提示一个错误然后退出。,2019/4/14,第8章 图 形 处 理,51,(3)光照控制,MATLAB 7语言提供了许多函数在图形中进行对光源的定位并改变光照对象的特征。,2019/4/14,第8章 图 形 处 理,52,光照控制举例,本例首先绘制一个膜面图,然后使用位置向量 0 -2 1 设置光源的方向。 z=peaks(50); surf(z) light(Position,0.5 -3 2) ,