第三篇--MATLAB图形可视化(二)

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) =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 阶梯图
发布了25 篇原创文章 · 获赞 4 · 访问量 764

猜你喜欢

转载自blog.csdn.net/qq_45416295/article/details/104182307