目录
3.等高线图形绘制
3.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’) 因为等高线是以当前的色图中的颜色画的,且是作为块对象处理的,即等高线是一般的线条,我们可象画普通线条一样,可以指定等高线的颜色或者线形。
contour(peaks(40))
补:matlab 中的 peaks 函数是一个典型的多元函数。它本质上是一个二元高斯分布的概率密度函数,函数表达式为:
f
(
x
,
y
)
f(x,y)
f(x,y)=3(1−x)2e−x2−(y+1)2−10(1/5x−x3−y5)e−x2−y2−1/3e−(x+1)2−y2
三维图像:
f=@(x,y)3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2);
ezmesh(f);
图像恰好有3个极小点,3个极大点。
3.2 clabel命令
- 在二维等高线图中添加高度标签。在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。
- 命令格式:
- clabel(C,h) 把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度。
- clabel(C,h,v) 在指定的高度v上显示标签h,当然要对标签做恰当的处理。
- clabel(C,h,‘manual’) 手动设置标签。用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。
- clabel© 在从命令contour生成的等高线结构c的位置上添加标签。此时标签的放置的位置是随机的。
- clabel(C,v) 在给定的位置v上显示标签
- clabel(C,‘manual’) 允许用户通过鼠标来给等高线贴标签
- 示例:
[x,y] = meshgrid(-2:.2:2); %生成网格点矩阵
z = x.*y.*exp(-x.^2-y.^2);
[C,h] = contour(x,y,z);%生成曲面的等高线图
clabel(C,h);%添加标签
3.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指定的高度上指定的等高线。
3.4 countour3命令
- 三维空间等高线图。该命令生成一个定义在矩形格栅上曲面的三维等高线图。
- 命令格式:
- 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将生成patch图形对象,且当前的colormap属性与caxis属性将控制颜色的显示。不论使用何种形式,该命令都生成line图形对象。
- 示例:
[X,Y] = meshgrid([-2:25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)%绘制30条等高线
3.5 contourf命令
- 填充二维等高线图。即先画出不同等高线,然后相邻的等高线之间用同一颜色进行填充。填充用的颜色决定于当前的色图颜色。
- 命令格式:
- contourf(Z) 矩阵z的等高线图,其中z理解成距平面的高度。Z至少为2*2阶的。等高线的条数与高度是自动选择的。
- contourf(Z,n) 画出矩阵z的n条高度不同的等高线。
- contourf(Z,v) 画出矩阵z的、由v指定的高度的等高线图。
- contourf(X,Y,Z)、contourf(X,Y,Z,n)、contourf(X,Y,Z,v) 画出矩阵z的等高线图,其中X与Y用于指定x-轴与y-轴的范围。若X与Y为矩阵,则必须与Z同型。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。
- [C,h,CF] = contourf(…)画出图形,同时返回与命令contourc中相同的等高线矩阵C,C也可被命令clabel使用;返回包含patch图形对象的句柄向量h;返回一用于填充用的矩阵CF。
- 示例:
contourf(peaks(30),20);%画出矩阵的20条高度不同的等高线
colormap gray
4.柱面和球面的三维表达
4.1 柱面表达cylinder
- 柱面的轴线定义为 z 轴,只要给出母线的描述就可完 成一个柱面。
- 命令格式:
- [X,Y,Z] = cylinder(R,N);
- [X,Y,Z] = cylinder®:缺省值 N=20;
- [X,Y,Z] = cylinder:缺省值 N=20,R=[1,1]。
- R:是一描述柱面母线的向量;
- N:是旋转柱面上的分割线条数;
- [X,Y,Z] :是返回的x,y,z坐标向量。
- 示例:
t=pi:0.01:3*pi;
r=sin(t)+t;
cylinder(r,30)
shading interp %函数 shading 改变着色方式
4.2 球面表达sphere
- 命令格式:
- [X,Y,Z]=sphere(N):产生一个( N+1)×( N+1)的矩阵, 然后用函数 surf 命令绘制一个单位的球面,N 为设置分割线 的条数;
- [X,Y,Z] = sphere:缺省 值 N = 20。
- 示例:
[X,Y,Z]=sphere(40);
surf(X,Y,Z)
4.3 其他图形绘制
特殊绘图指令
函数名称 | 功能 | 函数名称 | 功能 |
---|---|---|---|
area | 面积图 | compass | 指针图 |
bar | 竖直直方图 | hist | 向量统计直方图 |
barh | 水平直方图 | pareto | 带有标准的直方图 |
bar3 | 三维竖直直方图 | pie | 二维饼图 |
bar3h | 三维水平直方图 | pie3 | 三维饼图 |
gplot | 拓扑图 | plotmatrix | 矩阵折线图 |
comet | 彗星图 | ribbon | 带状图 |
errorbar | 误差棒图 | scatter | 散点图 |
ezplot | 符号函数曲线图 | stem | 火柴杆图 |
polar | 极坐标曲线图 | stem3 | 三维火柴杆图 |
feather | 羽毛图 | stairs | 阶梯图 |