MATLAB数学手册教程_第7章_绘图与图形处理

更新时间:2023-05-04 17:39:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MA TLAB6.0数学手册

228 第7章绘图与图形处理

人们很难从一大堆原始的数据中发现它们的含义,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。MATLAB可以表达出数据的二维,三维,甚至四维的图形。通过图形的线型,立面,色彩,光线,视角等属性的控制,可把数据的内在特征表现得淋漓尽致。下面我们分别介绍图形的命令。

7.1 二维图形

7.1.1 基本平面图形命令

命令1 plot

功能线性二维图。在线条多于一条时,若用户没有指定使用颜色,则plot循环使用由当前坐标轴颜色顺序属性(current axes ColorOrder property)定义的颜色,以区别不同的线条。在用完上述属性值后,plot又循环使用由坐标轴线型顺序属性(axes LineStyleOrder property)定义的线型,以区别不同的线条。

用法plot(X,Y) 当X,Y均为实数向量,且为同维向量(可以不是同型向量),X=[x(i)],Y=[y(i)],则plot(X,Y)先描出点(x(i),y(i)),然后用直线依次相连;若X,Y

为复数向量,则不考虑虚数部分。若X,Y均为同维同型实数矩阵,X = [X(i)],

Y = [Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩

阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维

数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向

量配对分别画出,矩阵可分解成几个向量就有几条线;在上述的几种使用形

式中,若有复数出现,则复数的虚数部分将不被考虑。

plot(Y) 若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),其中x=1:m;若y为实数矩阵,则把y按列的方向分解成几个列向量,而y 的行数为

n,则plot(Y)等价于plot(X,Y)其中x=[1;2;…;n];在上述的几种使用形式中,

若有复数出现,则复数的虚数部分将不被考虑。

plot(X1,Y1,X2,Y2,…),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。若其中仅仅有Xi或Yi是矩阵,其余的为向

量,向量维数与矩阵的维数匹配,则按匹配的方向来分解矩阵,再分别将配

对的向量画出。

plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…) 将按顺序分别画出由三参数定义Xi,Yi,LineSpeci的线条。其中参数LineSpeci指明了线条的类型,标记符号,

和画线用的颜色。在plot 命令中我们可以混合使用三参数和二参数的形式:

第7章绘图与图形处理

plot(X1,Y1,LineSpec1,X2,Y2,X3,Y3,LineSpec3)

plot(…,'PropertyName',PropertyValue,…) 对所有的用plot生成的line图形对象中指定的属性进行恰当的设置。

h = plot(…) 返回line图形对象句柄的一列向量,一线条对应一句柄值。

说明参数LineSpec

功能定义线的属性。Maltab允许用户对线条定义如下的特性:

1.线型

表7-1

定义符- -- :-.

线型实线(缺省值)划线点线点划线

2.线条宽度

指定线条的宽度,取值为整数(单位为像素点)

3.颜色

表7-2

定义符R(red)G(green) b(blue) c(cyan)

颜色红色绿色兰色青色

定义符M(magenta) y(yellow) k(black) w(white)

颜色品红黄色黑色白色

4.标记类型

表7-3

定义符+ o(字母) * . x

标记类型加号小圆圈星号实点交叉号

定义符 d ^ v > <

标记类型棱形向上三角形向下三角形向右三角形向左三角形

定义符s h P

标记类型正方形正六角星正五角星

5.标记大小

指定标记符号的大小尺寸,取值为整数(单位为像素)

6.标记面填充颜色

指定用于填充标记符面的颜色。取值在上表。

7.标记周边颜色

指定标记符颜色或者是标记符(小圆圈、正方形、棱形、正五角星、正六角星和四个方向的三角形)周边线条的颜色。取值在上表。

在所有的能产生线条的命令中,参数LineSepc可以定义线条的下面三个属性:线型、标记符号、颜色进行设置。对线条的上述属性的定义可用字符串来定义,如:plot(x,y,'-.or') 结合x和y,画出点划线(-.),在数据点(x,y)处画出小圆圈(o),线和标记都用红色画出。其中定义符(即字符串)中的字母、符号可任意组合。若没有定义符,则画图命令plot自动用缺省值进行画图。若仅仅指定了标记符,而非线型,则plot只在数据点画出标记符。如:plot(x,y,’d’)

例7-1

229

MA TLAB6.0数学手册

230 >>t = 0:pi/20:2*pi;

>>plot(t,t.*cos(t),'-.r*')

>>hold on

>>plot(exp(t/100).*sin(t-pi/2),'--mo') >>plot(sin(t-pi),':bs')

>>hold off

图形结果为图7-1。

例7-2

>>plot(t,sin(2*t),'-mo', 'LineWidth',2,'MarkerEdgeColor','k',…

'MarkerFaceColor',[.49 1 .63],'MarkerSize',12)

图形结果为图7-2。

图7-1 二维曲线图图7-2 二维图形的绘制

命令2 fplot

功能在指定的范围limits内画出一元函数y=f(x)的图形。其中向量x的分量分布在指定的范围内,y是与x同型的向量,对应的分量有函数关系:y(i)=f(x(i))。若对应于x的值,y返回多个值,则y是一个矩阵,其中每列对应一个f(x)。例如,f(x)返回向量[f1(x),f2(x),f3(x)],输入参量x=[x1;x2;x3],则函数f(x)返回矩阵

f1(x1) f2(x1) f3(x1)

f1(x2) f2(x2) f3(x2)

f1(x3) f2(x3) f3(x3)

注意一点的是,函数function必须是一个m-文件函数或者是一个包含变量x,且能用函数eval计算的字符串。例如:’sin(x)*exp(2*x)’,’[sin(x),cos(x)]’,’hump(x)’。

用法fplot('function',limits) 在指定的范围limits内画出函数名为function的一元函数图形。其中limits是一个指定x-轴范围的向量[xmin xmax]或者是x轴和y轴的

范围的向量[xmin xmax ymin ymax]。

fplot('function',limits,LineSpec) 用指定的线型LineSpec画出函数function。

fplot('function',limits,tol) 用相对误差值为tol画出函数function。相对误差的缺省值为2e-3。

fplot('function',limits,tol,LineSpec) 用指定的相对误差值tol和指定的线型LineSpec画出函数function的图形。

fplot('function',limits,n) 当n>=1,则至少画出n+1个点(即至少把范围limits分成n个小区间),最大步长不超过(xmax-xmin)/n。

第7章 绘图与图形处理

231 fplot(‘function ’,lims,…) 允许可选参数tol ,n 和LineSpec 以任意组合方式输入。

[X,Y] = fplot('function',limits,…) 返回横坐标与纵坐标的值给变量X 和Y ,此时

fplot 不画出图形。若想画出,可用命令plot(X,Y)。

[…] = plot('function',limits,tol,n,LineSpec,P1,P2,…) 允许用户直接给函数function

输入参数P1,P2等,其中函数functiond 的定义形式为

y = function(x,P1,P2,…)

若想用缺省的tol ,n 或LineSpec 值,只需将空矩阵([ ])传递给函数即可。 注意:fplot 采用自适应步长控制来画出函数function 的示意图,在函数的变化激烈的区间,采用小的步长,否则采用大的步长。总之,使计算量与时间最小,图形尽可能精确。

例7-3

>>fplot('tanh',[-2 2])

图形结果为图7-3。

>>subplot(2,2,1);fplot('humps',[0 1])

>>subplot(2,2,2);fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi])

>>subplot(2,1,2);fplot('[tan(x),sin(x),cos(x)]',2*pi*[-1 1 -1 1])

图7-3 函数画图 图7-4

命令3 loglog

功能 双对数图形。

用法 loglog(Y) 若y 为实数向量或矩阵,则结合y 列向量的下标与y 的列向量画出。

若y 为复数向量或矩阵,则loglog(Y)等价于loglog(real(Y),imag(Y)),在loglog

的其他使用形式中将忽略Y 的虚数部分。

loglog(X1,Y1,X2,Y2…) 结合Xn 与Yn 画出图形。若只有Xn 或Yn 为矩阵,另

一个为向量,行向量维数等于矩阵的列数,列向量的维数等于矩阵的行数,

则loglog 把矩阵按向量的方向分解成向量,再与向量结合分别画出图形。

loglog(X1,Y1,LineSpec1,X2,Y2,LineSpeec2…) 按顺序取三个参数Xn,Yn,

LineSpecn 画出线条,其中LineSpecn 指定线条的线型,标记符号和颜色。

用户可以混合使用二参数和三参数形式,如:

loglog(X1,Y1,X2,Y2,LineSpec2,X3,Y3)

MA TLAB6.0数学手册

232 loglog(…,'PropertyName',PropertyValue,…) 对所有由loglog命令生成的图形对象句柄的属性进行设置。

h = loglog(…) 返回line图形句柄向量,每条线对应一个句柄。

例7-4

>>x = logspace(-1,2);

>>loglog(x,10*exp(x),'-s')

>>grid on

图7-5

命令4 semilogx

功能x轴对数图形。若没有指定使用的颜色,当所画线条较多时,semilogx将自动使用由当前轴的ColorOrder和LineStyleOrder属性指定的颜色顺序和线型顺序来画线。

用法semilogx(Y) %对x轴的刻度求常用对数(以10为底),而y轴为线性刻度。

若y为实数向量或矩阵,则结合y列向量的下标与y的列向量画出线条;若

y为复数向量或矩阵,则semilogx(Y)等价于semilogx(real(Y),imag(Y))。在

semilogx的其他使用形式中,Y的虚数部分将被忽略。

semilogx(X1,Y1,X2,Y2…) %结合Xn和Yn画出线条,若其中只有xn或yn为矩阵,另外一个为向量,行向量的维数等于矩阵的列数,列向量的维数等于

矩阵的行数,则按向量的方向分解矩阵,再与向量结合,分别画出线条。

semilogx(X1,Y1,LineSpec1X2,Y2,LineSpec2,…) %按顺序取三参数Xn,Yn,LineSpecn画线,参数LineSpecn指定使用的线型,标记符号和颜色。

用户可以混合使用二参数和三参数形式,如:

semilogx(X1,Y1,X2,Y2,LineSpec2,X3,Y3)

semilogx(…,'PropertyName',PropertyValue,…) %对所有由semilogx命令生成的图形对象句柄的属性进行设置

h = semilogx(…) %返回line图形句柄向量,每条线对应一个句柄。

例7-5

>>x = 0:.1:10;

>>semilogx(x,cos(10.^x))

图形结果为图7-6。

命令5 semilogy

用法:参见semilogx命令。

命令6 fill

图7-6

第7章 绘图与图形处理

233功能 用颜色填充二维多边形。

用法 fill(X,Y,C) 用x 和y 中的数据生成多边形,用c 指定的颜色填充它。其中c 为色

图向量或矩阵。若c 是行向量,则要求c 的维数等于x 和y 的列数,若c

为列向量,则要求c 的维数等于x 和y 的行数。

fill(X,Y,ColorSpec) 用ColorSpec 指定的颜色填充由x 和y 定义的多边形

fill(X1,Y1,C1,X2,Y2,C2,…) 指定多个要填充的二维区域

fill(…,'PropertyName',PropertyValue) 允许用户对一个patch 图形对象的某个属性

设定属性值。

h = fill(…) 返回patch 图形对象句柄的向量,每一个patch 对象对应一个句柄。 注意:

1. 若x 或y 是一矩阵,另一个是向量,向量应是维数与矩阵的行数相等的列向量或是维数等于矩阵列数的行向量时,函数fill 将向量复制成与矩阵同型的矩阵。函数fill 将矩阵x 与y 中列向量中的数据生成多边形的顶点。

2. 颜色阴影类型决定于用户在参数中列出的颜色,若用户用ColorSpec 指定颜色,命令fill 生成平坦阴影模式(flat-shaded )多边形,同时设置补片对象(patch )的FaceColor 属性为相应的RGB 颜色矩阵。

3. 若用户用参量c 指定所用颜色,命令fill 按坐标轴属性Clim 的比例缩小c 中的元素,之后,c 成为引用当前色图的下标矩阵。

4. 若c 为行向量,命令fill 生成平面阴影的多边形,c 的每一元素决定由矩阵x ,y 的每一列定义的多边形内的颜色,每一补片对象的FaceColor 属性被设置为'flat',x ,y 的每一行元素变成第n 块补片对象的Cdata 属性值,其中n 为矩阵x 或y 中的相应的列。

5. 若c 为一列向量或一矩阵,命令fill 运用一线性插值法计算每一节点的颜色,以便用插值颜色填充多边形的内部。它设置补片对象的FaceColor 属性为‘interp ’,且在一列中的元素变成每一补片的Cdata 属性值。若c 为一列向量,

命令fill 用该向量复制成需要大小的尺寸。

例7-6

>>t = (1/16:1/8:1)'*2*pi;

>>x = exp(t).*sin(t);

>>y = t.*cos(t);

>>fill(x,y,'k')

>>grid on

图形结果为图7-7。

命令7 zoom

功能 对二维图形进行放大或缩小。放大或缩小会改变坐标轴范围。

用法 zoom on 打开交互式的放大功能。当一个图形处于交互式的放大状态时,有两种方法来放大图形:

对于一键鼠标或二键,三键鼠标,单击坐标轴内的任意一点,可使图形放大一倍,这一操作可进行多次,直到matlab 的最大显示为止;对于二键或三键的鼠标,在坐标轴内单击右键,可使图形缩小一倍,这一操作可进行多次,直到还原图形为止。对于一键鼠标,要想缩小图形,需要按住键盘上的Shift 键,再单击鼠标键。

图7-7

MA TLAB6.0数学手册

234 用鼠标拖出要放大的部分,系统将放大选定的区域。

zoom off 关闭交互式放大功能。

zoom out 将系统转回非放大状态,并将图形恢复原状。

zoom reset 系统将记住当前图形的放大状态,作为放大状态的设置值。以后使用

zoom out 或者是双击鼠标时,交互式放大状态打开,且图形并不是返回到原

状,而是返回reset 时的放大状态。

zoom 用于切换放大的状态:on 和off 。

zoom xon 只对x 轴进行放大。

zoom yon 只对y 轴进行放大。

zoom(factor) 用放大系数factor 进行放大或缩小,而不影响交互式放大的状态。

若factor>1,系统将图形放大factor 倍,若0

1/factor 倍。

zoom(fig, option) 指定对窗口fig 中(不一定为当前窗口)的二维图形进行放大,

其中参数option 为:on 、off 、xon 、yon 、reset 、factor 等。

命令8 meshgrid

功能 生成二元函数z = f(x,y)中x-y 平面上的矩形定义域中数据点矩阵X 和Y ,或者是三元函数u = f(x,y,z)中立方体定义域中的数据点矩阵X,Y 和Z 。

用法 a :[X,Y] = meshgrid(x,y)

b :[X,Y] = meshgrid(x)

c :[X,Y,Z] = meshgrid(x,y,z)

说明 对于形式a ,输入向量x 为x-y 平面上矩形定义域的矩形分割线在x 轴的值,向量y 为x-y 平面上矩形定义域的矩形分割线在y 轴的值。输出向量X 为x-y 平面上矩形定义域的矩形分割点的横坐标值矩阵,输出向量Y 为x-y 平面上矩形定义域的矩形分割点的纵坐标值矩阵。

对于形式b ,等价于形式a :[X,Y] = meshgrid(x) = meshgrid(x,x)。

对于形式c ,输入向量x 为立方体定义域的立方体分割平面在x 轴上的值,输入向量y 为立方体定义域的立方体分割平面在y 轴上的值,输入向量z 为立方体定义域的立方体分割平面在z 轴上的值。输出向量X 为立方体定义域中分割点的x 轴坐标值,Y 为立方体定义域中分割点的y 轴坐标值,Z 为立方体定义域中分割点的z 轴坐标值。

例7-7

>>x = [0.7 1.1 ]; y = [-2 3 1]; z = [2 5 3]; %分量不一定从小到大

>>[X_2d,Y_2d] = meshgrid(x,y)

>>[X_3d,Y_3d,Z_3d] = meshgrid(x,y,z)

计算结果为:

X_2d =

0.7000 1.1000

0.7000 1.1000

0.7000 1.1000

Y_2d =

-2 -2

3 3

1 1

X_3d(:,:,1) =

第7章 绘图与图形处理

235 0.7000 1.1000

0.7000 1.1000

0.7000 1.1000

X_3d(:,:,2) =

0.7000 1.1000

0.7000 1.1000

0.7000 1.1000

X_3d(:,:,3) =

0.7000 1.1000

0.7000 1.1000

0.7000 1.1000

Y_3d(:,:,1) =

-2 -2

3 3

1 1

Y_3d(:,:,2) =

-2 -2

3 3

1 1

Y_3d(:,:,3) =

-2 -2

3 3

1 1

Z_3d(:,:,1) =

2 2

2 2

2 2

Z_3d(:,:,2) =

5 5

5 5

5 5

Z_3d(:,:,3) =

3 3

3 3

3 3

7.1.2 特殊平面图形命令

命令1 polar

功能 画极坐标图。该命令接受极坐标形式的函数rho=f(θ),在笛卡儿坐标系平面上画出该函数,且在平面上画出极坐标形式的格栅。

用法 polar(theta,rho) 用极角theta 和极径rho 画出极坐标图形。极角theta 为从x 轴到

半径的单位为弧度的向量,极径rho 为各数据点到极点的半径向量。

polar(theta,rho,LineSpec) 参量LineSpec 指定极坐标图中线条的线型、标记符号和

颜色等。

例7-8

>>t = 0:.01:2*pi;

>>polar(t,sin(3*t).*cos(2*t),'--r')

图形结果为图7-8。

命令2 bar

功能 二维垂直条形图。用垂直条形显示向量或矩阵中的值。

用法 bar(Y) 若y 为向量,则分别显示每个分量的高度,横

坐标为1到length (y );若y 为矩阵,则bar 把y 分解成行向量,再分别

图7-8

MA TLAB6.0数学手册

236 出,横坐标为1到size (y ,1),即矩阵的行数。

bar(x,Y) 在指定的横坐标x 上画出y ,其中x 为严格单增的向量。若y 为矩阵,

则bar 把矩阵分解成几个行向量,在指定的横坐标处分别画出。

bar(…,width) 设置条形的相对宽度和控制在一组内条形的间距。缺省值为0.8,

所以,如果用户没有指定x ,则同一组内的条形有很小的间距,若设置width

为1,则同一组内的条形相互接触。

bar(…,'style') 指定条形的排列类型。类型有“group ”和“stack ”,其中“group ”

为缺省的显示模式。

“group ”:若y 为n*m 阶的矩阵,则bar 显示n 组,每组有m 个垂直条形的

条形图。

“stack ”:对矩阵y 的每一个行向量显示在一个条形中,条形的高度为该行

向量中的分量和。其中同一条形中的每个分量用不同的颜色显示出来,

从而可以显示每个分量在向量中的分布。

bar(…,LineSpec) 用指定的颜色LineSpec 显示所有的条形。

[xb,yb] = bar(…) 返回用户可用命令plot 或命令patch 画出条形图的参量xb ,yb 。

这对用户控制一个图形的显示是有用的,例如要在一个plot 语句中加入装饰

性的条形图等。

h = bar(…) 返回一个patch 图形对象句柄的向量。每一条形对应一个句柄。 例7-9

x = -2.9:0.2:2.9;

bar(x,exp(x.*sin(x)))

colormap gray 图形结果为图7-9。 例7-10 subplot(2,2,4) bar(Y ,1.5) title 'Width = 1.5'

图形结果为图7-10。

命令3 barh 功能 二维水平条形图。用水平条形显示向量或矩阵中的值。

用法 barh(Y) 若y 为向量,则分别显示每个分量的高度,纵坐标为1到length(y);若

y 为矩阵,则bar 把y 分解成行向量,再分别画出,纵坐标为1到size(y,1),

即矩阵的行数。

barh(x,Y) 在指定的纵坐标x 上以水平方向画出y ,其中x 为严格单增的向量。若

y 为矩阵,则barh 把矩阵分解成几个行向量,在指定的纵坐标处分别画出。

barh(…,width) 设置条形的相对宽度和控制在一组内条形的间距。缺省值为0.8,

所以,如果用户没有指定x ,则同一组内的条形有很小的间距,若设置width

为1,则同一组内的条形相互接触。

barh(…,'style') 指定条形的排列类型。类型有“group ”和“stack ”,其中“group ”

为缺省的显示模式。

“group ”:若y 为n*m 阶的矩阵,则bar 显示n 组,每组有m 个水平条

形的条形图。

图7-9

第7章 绘图与图形处理

237 “stack ”:对矩阵y 的每一个行向量显示在一个条形中,条形的高度为

该行向量中的分量和。其中同一条形中的每个分量用不同的颜色

显示出来,从而可以显示每个分量在向量中的分布。

barh(…,LineSpec) 用指定的颜色LineSpec 显示所有的条形。

[xb,yb] = barh(…) 返回用户可用命令plot 或命令patch 画出条形图的参量xb ,yb 。

这给用户控制一个图形的显示是有用的,例如要在一个plot 语句中加入装饰

性的条形图等。

h = barh(…) 返回一个patch 图形对象句柄的向

量。每一条形对应一个句柄。

例7-11

>>X = 1:.5:5;

>>Y = exp(X).*sin(X);

>>barh(Y ,'stack')

图形结果为图7-11。

命令4 compass 功能 从原点画箭头图。箭头图为一显示起点为笛卡儿坐标系中的原点的二维或三维方向或向量的图形,同时在坐标系中显示圆形的分隔线。

用法 compass(X,Y) 参量x 与y 为同型的n 维向量,则命令显示n 个箭头,箭头的起

点为原点,箭头的位置为[X(i),Y(i)]。

compass(Z) 参量z 为n 维复数向量,则命令显示n 个箭头,箭头起点为原点,箭

头的位置为[real(Z),imag(Z)].

compass(…,LineSpec) 用参量LineSpec 指定箭头图

的线型、标记符号、颜色等属性。

h = compass(…) 返回line 对象的句柄给h 。

例7-12

Z = magic(20).*randn(20);

compass(Z)

图形结果为图7-12。

命令5 comet 功能 二维彗星图。彗星图为彗星头(一个小圆圈)沿着数据点前进的动画,彗星体为跟在彗星头后面的痕迹,轨道为沿着整个函数的实线。我们要指出的是,由命令comet 生成的轨迹是使用擦除模式(EraseMode )属性的值为none ,该属性使用户不能打印该图形(只能得到彗星头),且当用户改变窗口的大小时,动画将消失。

用法 comet(y) 彗星图动画显示向量y 确定的路线。

comet(x,y) 彗星图动画显示向量x 与y 确定的路线。

comet(x,y,p) 指定彗星体的长度p*length(y),缺省的

p 值为0.1。

例7-13

>>t = 0:.01:2*pi;

>>x = exp(sin(2*t)).*(cos(t).^2/3);

>>y = t.*(sin(t).^2);

>>comet(x,y);

7-11

7-12

图7-13

MA TLAB6.0数学手册

238 图形结果为图7-13。

附:擦除模式(EraseMode)属性及属性值:{normal}|none|xor|background

该属性控制系统用于显示与擦除线条对象的技术。不同的擦除模式对于生成动画系

列,即控制个别对象的重新显示方式,对于改进外在显示和获得理想的效果是很必要的。

表7-4 属性值

含义 Normal

(缺省值)

重新显示受影响的区域,在必要的时候,进行三维分析计算,以保证所有的对象的显示都是正确的。该模式下的图形显示是最精确的,不过也是最缓慢的,以下其他三种模式显示速度较快,不过没有执行一个完全的重显过程,因而,图形显示也不是很精确的。 none

当线条移动或改动时,该模式没有擦除线条,而是仍然显示于屏幕上。该模式下不能打印图形,因为系统没有存储前一图形的任何信息。 xor

使用异或运算(xor)计算线条颜色与当前位置下的颜色,用所得结果显示与擦除线条。该模式对于线条下面对象的颜色没有任何破坏,只是影响到线条的当前显示颜色而已。 Background 用当前坐标轴颜色重新显示线条的方式来擦除线条,若当前坐标轴颜色设置为none ,则用图形的背景色来代替坐标轴颜色。该模式对于处于擦除线条后面的对象来说是有损害

的,不过当前线条的颜色总是最合适的。

命令6 errorbar

功能 沿着一曲线画误差棒形图。误差棒为数据的置信水平或者为沿着曲线的偏差。在下列参数中,若为矩阵,则按列画出误差棒。

用法 errorbar(Y,E) 画出向量y ,同时显示在向量y 的每一元素之上的误差棒。误差棒

为E(i)在曲线y 上面与下面的距离,所以误差棒的长度为2*E(i)。

errorbar(X,Y,E) X,Y,E 必须为同型参量

。若同为向量,则画出带长度为2*E(i)、对

称误差棒于曲线点(X(i),Y(i))之处;若同为矩阵,则画出带长度为E(i ,j)、

对称误差棒于曲面点(X(i,j),Y(i,j))之处,

errorbar(X,Y,L,U) X ,Y ,L ,U 必须为同型参量。若同为向量,则在点(X(i),Y(i))

处画出向下长为L(i),向上长为U(i)的误差棒;若同为矩阵,则在点

(X(i,j),Y(i.j))处画出向下长为L(i,j),向上长为U(i,j)的误差棒。

errorbar(…,LineSpec) 用LineSpec 指定的线型、标记符、颜色等画出误差棒。 h = errorbar(…) 返回线图形对象的句柄向量给h 。 例7-14

>>X = 0:pi/10:pi;

>>Y = exp(X).*sin(X);

>>E = std(Y)*ones(size(X));

>>errorbar(X,Y ,E)

图形结果为图7-14。

命令7 feather 功能 画出速度向量图。一羽毛图在横坐标上等距地显

示向量。用户要表示各个向量的、相对于原点的向量分量。

用法 feather(U,V) 显示由参量向量u 与v 确定的向量,其中u 包含作为相对坐标系中

的x 成分,v 包含作为相对坐标系中的y 成分。

feather(Z) 显示复数参量向量z 确定的向量,等价于feather(real(Z),imag(Z))。

图7-14

第7章 绘图与图形处理

239 feather(…,LineSpec) 用参量LineSpec 指定的线型、标记符号、颜色等属性画出

羽毛图。

例7-15

>>th = (-90:10:90)*pi/180;

>>r = 4*ones(size(th));

>>[u,v] = pol2cart(th,r);

>>feather(u,v);

图形结果为图7-15。

命令8 hist

功能 二维条形直方图,可以显示出数据的分配情形。所有向量y

中的元素或者是矩阵y 中的列向量中的元素是根据它们的数值范围来分组的,每一组作为一个条形进行显示。条形直方图中的x 轴反映了数据y 中元素数值的范围,直方图的y 轴显示出参量y 中的元素落入该组的数目。所以y 轴的范围从0到任一条形中包含元素最多的数字。直方图为一patch 图形对象,若想改变图形的颜色,可以对patch 对象的属性进行设置。缺省时,图形颜色是由当前色图进行控制,当前色图的第一个颜色为直方图的颜色。

用法 n = hist(Y) 把向量y 中的元素放入等距的10个条形中,且返回每一个条形中的

元素个数。若y 为矩阵,则该命令按列对y 进行处理。

n = hist(Y,x) 参量x 为向量,把y 中元素放到m (m=length(x))个由x 中元素指

定的位置为中心的条形中。

n = hist(Y,nbins) 参量nbins 为标量,用于指定条形的数目。

[n,xout] = hist(…) 返回向量n 与包含频率计数与条形的位置向量xout ,用户可以

用命令bar(xout,n)画出条形直方图。

例7-16

>>x = -5:0.1:5;

>>y = randn(1000,1);

>>hist(y,x)

图形结果为图7-16。

命令9 histc

功能 直方图记数 用法 n = histc(x,edges) 统计向量x 中、落入向量edges (元

素必须为单调的非减的)各个元素之间的元素个数。输出参量n 为一与向量

edges 同维的向量。其中若有edges(k)>=x(i)>=edges(k+1),则n(k)增加1。X

中超出向量edges 规定的范围的元素将不被统计。参量edges 中可使用-inf

与inf ,用于包括向量x 中非NaN 的元素。若x 为一矩阵,则对x 的每一列

进行上述操作。

n = histc(x,edges,dim) 对多维矩阵的第dim 维进行统计。

[n,bin] = histc(…) n 结果同上,同时返回矩阵下标bin 。若x 为向量,n(k) = sum(bin

== k)。对于超出范围的数值,bin 为零值。

命令10 rose

功能 画角度直方图。该直方图是一个显示所给数据的变化范围内数据的分布情形的极坐标图,所给数据分成不同的组。每一组作为一小扇形进行显示。

图7-15 图7-16

MA TLAB6.0数学手册

240 用法 rose(theta) 画一角度直方图,显示参数theta 的数据在20个区间或更少的区间

内的分布。向量theta 中的角度单位为弧度,用于确定每一区间与原点的角

度。每一区间的长度反映出输入参量的元素落入一区间的个数。

rose(theta,x) 用参量x 指定每一区间内的元素与区间的位置,length(x)等于每一区

间内元素的个数与每一区间位置角度的中间角度。例如,若x 为一5维向量,

rose 命令分配参量theta 中的元素为5部分,每一部分的角度中线由x 指定。

rose(theta,nbins) 于区间 [0,2*pi] 内画出nbins 个等距的小扇形。缺省值为20。

[tout,rout] = rose(…) 返回向量tout 与rout ,可以用polar(tout,rout)画出图形。该

命令没有画任何的图形。

例7-17

>>theta = 3*pi*randn(1,30);

>>rose(theta)

图形结果为图7-17。

命令11 stairs

功能 画二维阶梯图,这种图对与时间有关的数字样本系统的作图很有用处。

用法 stairs(Y) 用参量y 的元素画一阶梯图。若y 为向量,则横坐标x 的范围从1到

m=length(y),若y 为矩阵,则对y 的每一行画一阶梯图,其中x 的范围从1

到y 的列数m 。

stairs(X,Y) 结合x 与y 画阶梯图。其中要求x 与y 为同型的向量或矩阵。此外,x

可以为行向量或为列向量,且y 为有m=length (x )行的矩阵。

stairs(…,LineSpec) 用参数LineSpec 指定的线型、标记符号和颜色画阶梯图。

[xb,yb] = stairs(Y) 该命令没有画图,而是返回可以用命令plot 画出参量y 的阶梯

图的向量xb 与yb 。

[xb,yb] = stairs(X,Y) 该命令没有画图,而是返回可以用

命令plot 画出参量x ,y 的阶梯图的向量xb 与yb 。

例7-18

>>x = 0:.25:10;

>>stairs(x,exp(sin(x.^2)))

图形结果为图7-18。

命令12 stem 功能 画二维离散数据的柄形图。该图用线条显示数据点与x

轴的距离,一小圆圈(缺省标记)或用指定的其他标记符号与线条相连,在y 轴上标记数据点的值。

用法 stem(Y) 按y 元素的顺序画出柄形图,在x 轴上,柄与柄之间的距离相等;若y

为矩阵,则把y 分成几个行向量,在同一横坐标的位置上画出一个行向量的

柄图。

stem(X,Y) 在横坐标x 上画出列向量y 的柄形图 。其中x 与y 为同型的向量或

矩阵,此外,x 可以为行向量或列向量,而y 为有m=length (x )行的矩阵。

stem(…,'fill') 指定是否对柄形图末端的小圆圈填充颜色。

7-17

图7-18

第7章 绘图与图形处理

241 stem(…,LineSpec) 用参数LineSpec 指定线型,标记符

号和柄图末端的小圆圈的颜色画柄图。

h = stem(…) 返回柄形图的line 图形对象句柄向量。

例7-19

>>x = linspace(0,2,10);

>>stem(exp(-x.^2),'fill','-.')

图形结果为图7-19。 命令13 stem3

功能 画三维离散数据的柄形图。该图用一线段显示数据离开xy 平面的高度,在线段的末端用一小圆圈(缺省记号)或其他的标记符号表示数据的高度。

格式 stem3(Z) 用柄形图显示z 中数据与xy 平面的高度。若z 为一行向量,则x 与y

将自动生成,stem3将在与x 轴平行的方向上等距的位置上画出z 的元素;

若y 为列向量,stem3将在与y 轴平行的方向上等距的位置上画出z 的元素。

stem3(X,Y,Z) 在参数x 与y 指定的位置上画出z 的元素,其中x ,y ,z 必须为同

型的向量或矩阵。

stem3(…,'fill') 指定是否要填充柄形图末端小圆圈。

stem3(…,LineSpec) 指定线型,标记符号和末端小圆

圈的颜色。

h = stem3(…) 返回柄形图的line 图形对象句柄。

例7-20

[X,Y ,Z] = peaks(20);

stem3(X,Y ,Z,’r*')

图形结果为图7-20。 命令14 pie

功能 饼形图

格式 pie(X) 用x 中的数据画一饼形图,x 中的每一元素代表饼形图中的一部分。X

中元素X(i)所代表的扇形大小通过X(i)/sum(X)的大小来决定。若有

sum(X)=1,则x 中元素就直接指定了所在部分的大小;若sum(X)<1,则画

出一不完整的饼形图。

pie(X,explode) 从饼形图中分离出一部分,explode 为元素为零或非零的、与x 相

对应的向量或矩阵。与explode 的非零值对应的部分将

从饼形图中心分离出来。explode 必须与x 同型。

h = pie(…) 返回一patch 与text 的图形对象句柄向量h 。

例7-21

>>x = [1 3 0.5 2.5 2];

>>explode = [0 1 0 0 0];

>>pie(x,explode)

图形结果为图7-21。 7.1.3 二维图形注释命令

命令1 grid

功能 给二维或三维图形的坐标面增加分隔线。该命令会对当前坐标轴的Xgrid ,Ygrid ,图7-19 图7-20

图7-21

MA TLAB6.0数学手册

242 Zgrid 的属性有影响。

用法 grid on 给当前的坐标轴增加分隔线。

grid off 从当前的坐标轴中去掉分隔线。

grid 转换分隔线的显示与否的状态。

grid(axes_handle,on|off) 对指定的坐标轴axes_handle 是否显示分隔线。

命令2 gtext

功能 在当前二维图形中用鼠标放置文字。当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作。

用法 gtext('string') 当光标位于一个图形窗口内时,等待用户单击鼠标或键盘。若按下

鼠标或键盘,则在光标的位置放置给定的文字“string ”

h = gtext('string') 当用户在鼠标指定的位置放置文字“string ”后,返回一个text

图形对象句柄给h 。

命令3 legend

功能 在图形上添加图例。该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。当所画的是区域(patch 或surface 对象)时,图例会在文字旁显示表面颜色。Matlab 在一个坐标轴中仅仅显示一个图例。图例的位置有几个因素决定,像遮挡的对象等,用户可以用鼠标拖动图例到恰当的位置,双击标签可以进入标签编辑状态。

用法 legend('string1','string2',…) 用指定的文字string 在当前坐标轴中对所给数据的每

一部分显示一个图例。

legend(h,'string1','string2',…) 用指定的文字string 在一个包含于句柄向量h 中的图

形显示图例。用给定的数据对相应的图形对象加上图例。

legend(string_matrix) 用字符矩阵参量string_matrix 的每一行字符串作为标签。 legend(h,string_matrix) 用字符矩阵参量string_matrix 的每一行字符串作为标签给

包含于句柄向量h 中的相应的图形对象加标签。

legend(axes_handle,…) 给由句柄axes_handle 指定的坐标轴显示图例。

legend('off') 从当前的坐标轴,或是由axes-handle 指定的坐标轴中除掉图例。 legend(axes_handle,'off') 从由axes_handle 指定的坐标轴中除掉图例。

legend_handle = legend 返回当前坐标轴中的图例句柄,若坐标轴中没有图例存

在,则返回空向量。

legend 对当前图形中所有的图例进行刷新。

legend(legend_handle) 对由句柄legend_handle 指定的图例进行刷新。

legend(…,pos) 在指定的位置pos 放置图例见表7-5。

表7-5 Pos 取值

pos=-1 pos=0 Pos=1 图例位置

坐标轴之外的右边 坐标轴之内,有可能遮挡部分图形 坐标轴的右上角(缺省位置) Pos 取值

pos=2 pos=3 pos=4 图例位置 坐标轴的左上角 在坐标轴的左下角 坐标轴的右下角

第7章 绘图与图形处理

243

h = legend(…) 返回图例的句柄向量。

[legend_handle,object_handles] = legend(…) 返回图例句

柄,该句柄为坐标轴定义于图例中的图形对象、line 对象、text 对象的句柄。这些句柄允许用户对每个对象进行详细的操作。

例7-22

>>x = -pi:pi/20:pi;

>>plot(x,(cos(x)).^2,'rd',x,asin(x),'-.b') >>h = legend('cos2x','asin',2);

图形结果为图7-22。

命令4 title

功能 给当前轴加上标题。每个axes 图形对象可以有一个标题。标题定位于axes 的上方正中央。

用法 title('string') 在当前坐标轴上方正中央放置字符串string 作为标题 title(fname) 先执行能返回字符串的函数fname ,然后在当前轴上方正中央放置返

回的字符串作为标题

title(…,'PropertyName',PropertyValue,…) 对由命令title 生成的text 图形对象的属

性进行设置

h = title(…) 返回作为标题的text 对象句柄。 命令5 text

功能 在当前轴中创建text 对象。函数text 是创建text 图形句柄的低级函数。可用该函数在图形中指定的位置上显示字符串。

用法 text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string

text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string

text(x,y,z,’string ’.'PropertyName',PropertyValue …) 对引号中的文字string 定位于用坐标轴指定的位置,且对指定的属性进行设置。表7-6给出文字属性名、含义及属性值。

表7-6

属性名

属性说明

属性值

定义字符串 Editing 能否对文字进行编辑 有效值:on 、off 缺省值:off

Interpretation TeX 字符是否可用 有效值:tex 、none 缺省值:tex

String

字符串(包括TeX 字符串)

有效值:可见字符串

放置字符串 Extent

text 对象的范围(位置与大小) 有效值:[left, bottom, width, height]

HorizontalAlignment 文字水平方向的对齐方式

有效值:left(文本外框左边对齐,缺省对齐方式)、center(文本外框中间对齐)、right(文

本外框右边对齐) 缺省值:left

Position 文字范围的位置

有效值:[x,y,z]直角坐标系

缺省值:[](空矩阵)

Rotation

文字对象的方位角度

有效值:标量(单位为度)

缺省值:0

图7-22

MA TLAB6.0数学手册

244

Units 文字范围与位置的单位

有效值:pixels (屏幕上的像素点)、normalized (把屏幕看成一个长、宽为1的矩形)、inches(英寸)、centimeters(厘米)、points (图象点)、data 缺省值:data

VerticalAlignment 文字垂直方向的对齐方式

有效值:top (文本外框顶上对齐)、cap(文本字符顶上对齐)、middle(文本外框中间对齐)、baseline(文本字符底线齐)、bottom(文本外框底线对齐) 缺省值:middle

指定文字字体 FontAngle 设置斜体文字模式 有效值:normal(正常字体)、italic(斜体字)、oblique(斜角字) 缺省值:normal

FontName 设置文字字体名称 有效值:用户系统支持的字体名或者字符串FixedWidth 。

缺省值为 Helvetica

FontSize

文字字体大小

有效值:结合字体单位的数值 缺省值为:10 points

FontUnits 设置属性FontSize 的单位

有效值:points (1点=1/72英寸)、normalized(把父对象坐标轴作为一单位长的一个整体;当改变坐标轴的尺寸时,系统会自动改变字体的大小)、inches (英寸)、Centimeters(厘米)、Pixels(像素) 缺省值:points

FontWeight 设置文字字体的粗细

有效值:light(细字体)、normal(正常字体)、demi(黑体字)、Bold(黑体字) 缺省值:normal

控制文字外观

Clipping

设置坐标轴中矩形的剪辑模式

有效值:on 、off

on :当文本超出坐标轴的矩形时,超出的部分不显示;

off :当文本超出坐标轴的矩形时,超出的部分显示。 缺省值:off

EraseMode 设置显示与擦除文字的模式。这些模式对生成动画系列与改进文字的显示效果很有好处。

有效值:normal 、none 、 xor 、 background 缺省值:normal

SelectionHighlight 设置选中文字是否突出显示 有效值:on 、off 缺省值:on

Visible

设置文字是否可见 有效值:on 、off 缺省值:on

Color

设置文字颜色

有效的颜色值:ColorSpec 控制对文字对象的访问 HandleVisibility 设置文字对象句柄对其他函数是否可见

有效值:on 、callback 、off 缺省值:on HitTest

设置文字对象能否成为当前对象(见图形CurrentObject 属性)

有效值:on 、off 缺省值:on

文字对象的一般信息 Children 文字对象的子对象(文字对象没有子对象)

有效值:[](即空矩阵) Parent 文字对象的父对象(通常为axes 对象)

有效值:axes 的句柄 Seleted 设置文字是否显示出“选中”状态

有效值:on 、off 缺省值:off

第7章 绘图与图形处理

245

Tag 设置用户指定的标签 有效值:任何字符串

缺省值:’’(即空字符串) Type 设置图形对象的类型(只读类型)

有效值:字符串’text ’ UserData

设置用户指定数据

有效值:任何矩阵

缺省值:[](即空矩阵)

控制回调例行执行程序 BusyAction 设置如何处理对文字回调过程中断的句柄

有效值:cancel 、queue 缺省值:queue

ButtonDownFcn 设置当鼠标在文字上单击时,程序做出的反应(即执行回调程序)

有效值:字符串

缺省值:' '(空字符串) CreateFcn 设置当文字被创建时,程序做出的反应(即执行的回调程序)

有效值:字符串

缺省值:' '(空字符串) DeleteFcn 设置当文字被删除(通过关闭或删除操作)时,程序做出的反应(即执行的回调程序) 有效值:字符串

缺省值:' '(空字符串) Interruptible 设置回调过程是否可中断 有效值:on 、off

缺省值:on (能中断) UIContextMenu

设置与文字相关的菜单项

有效值:用户相关菜单句柄

h = text(…) 返回文字对象句柄的列向量,每一对象对应一句柄。该命令的其他使

用形式中,将随意地返回这个输出参量。

例7-23

>>plot(0:pi/20:2*pi,sin(0:pi/20:2*pi)) >>text(pi,0,’Zeros Point ’) >>grid on

图形结果为图7-23。 命令6 xlabel 、ylabel 功能 给x 、y 轴贴上标签 用法 xlabel('string')、 ylabel(‘string ’) 给当前轴对象中的

x 、y 轴贴标签;注意:若再次执行xlabel 或ylabel 命令,则新的标签会覆盖旧的标签。

xlabel(fname)、ylabel(fname) 先执行函数fname ,其返回一个字符串,然后在x 、

y 轴旁边显示出来;

xlabel(…,'PropertyName',PropertyValue,…)、ylabel(…,’PropertyName ’,

PropertyValue)指定轴对象中的要控制的属性名和要改变的属性值,这些都是由xlabel 或ylabel 创建的text 图形对象的成对值;

h = xlabel(…)、h = ylabel(…)返回作为标签的text 对象的句柄。

7.2 三维图形

7.2.1 三维曲线、面填色命令

命令1 comet3

图7-23

MA TLAB6.0数学手册

246 功能 三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道为整个函数所画的实曲线。注意一点的是,该彗星轨迹的显示模式EraseMode 为none ,所以用户不能打印出彗星轨迹(只能得到一个小圆圈),且若用户调整窗口大小,则彗星会消失。

用法 comet3(z) 用向量z 中的数据显示一个三维彗星

comet3(x,y,z) 显示一个彗星通过数据x ,y ,z 确

定的三维曲线。

comet3(x,y,z,p) 指定彗星体的长度为:p*length

(y )。

例7-24

>>t = -20*pi:pi/50:20*pi;

>>comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t);

图形的结果为图7-24。

命令2 fill3

功能 用指定的颜色填充三维多边形。阴影类型为平面型和Gouraud 型。

用法 fill3(X,Y ,Z,C) 填充由参数x ,y 和z 确定多边形。若x ,y 或z 为矩阵,fill3生成

n 个多边形,其中n 为矩阵的列数。在必要的时候,fill3会自动连接最后一

个节点和第一个节点。以便能形成封闭的多边形。参数c 指定颜色,这儿c

为引用当前色图的下标向量或矩阵。若c 为行向量,则c 的维数必须等于x

的列数和y 的列数,若c 为列向量,则c 的维数必须等于矩阵x 的行数和y 的

行数。

fill3(X,Y ,Z,ColorSpec) 用指定的颜色ColorSpec 填充由x ,y 和z 确定的多边形。 fill3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,…) 对多边形的不同区域用不同的颜色进行填充。

fill3(…,'PropertyName',PropertyValue) 允许用户对特定的patch 属性进行设置。 h = fill3(…) 返回patch 图形对象的句柄向量,每一块(patch )对应一个句柄。 运算规则:

1.若X ,Y ,Z 为同型的矩阵,fill3生成X ,Y ,Z 中相同位置的元素确定的顶点,每一列生成一个多边形。

2.若只有X ,Y 或Z 为矩阵,则fill3由列向量参数生成可用的同型矩阵。

3.若用户对填充的颜色指定为ColorSpec ,则fill3生成阴影类型为flat-shaded 的多边形,且设置块(patch )的属性FaceColor 为RGB 颜色形式的矩阵。

4.若用户用矩阵C 指定颜色,命令fill3通过坐标轴属性Clim 来调整C 中的元素,在引用当前色图之前,用于指定颜色坐标轴的参数比例。

5.若参数C 为一行向量,命令fill3生成带平面阴影(flat-shaded )的多边形,同时设置补片对象的面颜色(FaceColor )属性为flat 。向量c 中的每一元素成为每一补片对象的颜色数据(CData )属性的值。

6.若参数C 为一矩阵,命令fill3生成带内插颜色的多边形,同时设置多边形补片对象的FaceColor 属性为interp 。命令fill3采用对多边形顶点色图的下标指定的颜色采

用线性内

图7-24

第7章 绘图与图形处理

247插算法,同时多边形的颜色采用对顶点颜色用内插算法得到的颜色。矩阵C 的每一列元素变成对应补片对象的Cdata 属性值。

7.若参数C 为一列向量,命令fill3先复制C 的元素,使之成为所需维数的矩阵,再按上面的方法6进行计算。

例7-25

>>X = 10*rand(4);Y=10*rand(4);Z=10*rand(4);

>>C = rand(4);

>>fill3(X,Y ,Z,C)

图形结果可能为图7-25。

7.2.2 三维图形等高线 命令1 contour

功能 曲面的等高线图

用法 contour(z) 把矩阵z 中的值作为一个二维函数的值,等高曲线是一个平面的曲

线,平面的高度v 是Matlab 自动取的;

contour(x,y,z) (x,y)是平面z=0上点的坐标矩阵,z 为相应点的高度值矩阵。效

果同上;

contour(z,n) 画出n 条等高线;

contour(x,y,z,n) 画出n 条等高线;

contour(z,v) 在指定的高度v 上画出等高线;

contour(x,y,z,v) 同上;

[c,h] = contour(…) 返回如同contourc 命令描述的等高矩阵c 和线句柄或块句柄

列向量h ,这些可作为clabel 命令的输入参量,每条线对应一个句柄,句柄

中的userdata 属性包含每条等高线的高度值;

contour(…,’linespec ’) 因为等高线是以当前的色

图中的颜色画的,且是作为块对象处理的,即

等高线是一般的线条,我们可象画普通线条一

样,可以指定等高线的颜色或者线形。

例7-26

>>contour(peaks(40))

图形结果为图7-26。

命令2 clabel

功能 在二维等高线图中添加高度标签。在下列形式中,若有h 出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。

用法 clabel(C,h) 把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足

够的空间时才加入,当然这决定于等高线的尺度。

clabel(C,h,v) 在指定的高度v 上显示标签h ,当然要对标签做恰当的处理。

clabel(C,h,'manual') 手动设置标签。用户用鼠标左键或空格键在最接近指定的位

置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。

clabel(C) 在从命令contour 生成的等高线结构c 的位置上添加标签。此时标签

的图7-25

图7-26

MA TLAB6.0数学手册

248 放置的位置是随机的。

clabel(C,v) 在给定的位置v 上显示标签

clabel(C,'manual') 允许用户通过鼠标来给等高线

贴标签

例7-27

>>[x,y] = meshgrid(-2:.2:2);

>>z = x.*y.*exp(-x.^2-y.^2);

>>[C,h] = contour(x,y,z);

>>clabel(C,h);

图形结果为图7-27。

命令3 contourc

功能 低级等高线图形计算命令。该命令计算等高线矩阵c ,该矩阵可用于命令contour ,contour3和contourf 等。矩阵z 中的数值确定平面上的等高线高度值,等高线的计算结果用由矩阵z 维数决定的间隔的宽度。

用法 C = contourc(Z) 从矩阵z 中计算等高矩阵,其中z 的维数至少为2*2阶,等高线

为矩阵z 中数值相等的单元。等高线的数目和相应的高度值是自动选择的。

C = contourc(Z,n) 在矩阵z 中计算出n 个高度的等高线。

C = contourc(Z,v) 在矩阵z 中计算出给定高度向量v 上计算等高线,当然向量v

的维数决定了等高线的数目。若只要计算一条高度为a 的等高线,输入:

contourc(Z,[a,a]);

C = contourc(x,y,Z) 在矩阵z 中,参量x ,y 确定的坐标轴范围内计算等高线;

C = contourc(x,y,Z,n) 从矩阵Z 中,参量x 与y 确定的坐标范围内画出n 条等高线;

C = contourc(x,y,Z,v) 从矩阵Z 中,参量x 与y 确定的坐标范围内,画在v 指定的

高度上指定的等高线。

命令4 contour3

功能 三维空间等高线图。该命令生成一个定义在矩形格栅上曲面的三维等高线图。 用法 contour3(Z) 画出三维空间角度观看矩阵z 的等高线图,其中z 的元素被认为是

距离xy 平面的高度,矩阵z 至少为2*2阶的。等高线的条数与高度是自动

选择的。若[m ,n]=size (z ),则x 轴的范围为[1:n],y 轴的范围为[1:m]。

contour3(Z,n) 画出由矩阵z 确定的n 条等高线的三维图。

contour3(Z,v) 在参量v 指定的高度上画出三维等高线,当然等高线条数与向量v

的维数相同;若想只画一条高度为h 的等高线,输入:contour3(Z,[h,h])

contour3(X,Y,Z)、contour3(X,Y ,Z,n)、contour3(X,Y,Z,v) 用X 与Y 定义x-轴与y-

轴的范围。若X 为矩阵,则X(1,:)定义x-轴的范围;若Y 为矩阵,则Y(:,1)

定义y-轴的范围;若X 与Y 同时为矩阵,则它们必须同型。不论为哪种使

用形式,所起的作用与命令surf 相同。若X 或Y 有不规则的间距,contour3

还是使用规则的间距计算等高线,然后将数据转变给X 或Y 。

contour3(…,LineSpec) 用参量LineSpec 指定的线型与颜色画等高线。

[C,h] = contour3(…) 画出图形,同时返回与命令contourc 中相同的等高线矩阵C ,

包含所有图形对象的句柄向量h ;除非没有指定LineSpec 参数,contour3

将生

图7-27

本文来源:https://www.bwwdw.com/article/n24e.html

Top