图5.2.3 surf 函数绘制的着色表面图
在曲面绘图中,另一个常用的函数是meshgrid 函数,其一般引用格式是:
[X, Y]=meshgrid (x, y)
其中x 和y 是向量,通过meshgrid 函数就可将x 和y 指定的区域转换成为矩阵X 和Y。
这样我们在绘图时就可以先用meshgrid 函数产生在x-y 平面上的二维的网格数据,再以一
组z 轴的数据对应到这个二维的网格,即可画出三维的曲面。
例5.2.3 绘制方程
sin((x^2+y^2)^(1/2)) z = --------------------- (x^2+y^2)^(1/2)
在x∈[-7.5,7.5];y∈[-7.5,7.5] 的图形。
>> x=-7.5:0.5:7.5;y=x; >> [X,Y]=meshgrid(x,y); >> R=sqrt(X.^2+Y.^2)+eps; >> Z=sin(R)./R; >> surf(X,Y,Z)
>> xlabel('X 轴方向') >> ylabel('Y 轴方向') >> zlabel('Z 轴方向') (见图5.2.4)
图5.2.4
例5.2.4 绘制由方程形成的立体图。(见图5.2.5) z=x*exp(-(x^2+y^2))
>> clear
>> x=-2:0.1:2;y=x;
>> [X,Y]=meshgrid(x,y); >> Z=X.*exp(-X.^2-Y.^2); >> surf(X,Y,Z)
图5.2.5
5.2.3 观察点
MTALAB 允许用户设置观察点,其指令是: view(azimuth,elevation)
其中方位角azimuth 是观察点和坐标原点连线在x-y 平面的投影和y 轴负方向的夹角,仰
角elevation 是观察点与坐标原点的连线和x-y 平面的夹角。对于这两个角度,三维图形的
默认值分别是-37.5 和30,二维图形的默认值是0 和90。
例5.2.5 从不同的角度观察高斯矩阵的曲面。
>> z=peaks(40); >> subplot(2,2,1); >> mesh(z);
>> subplot(2,2,2); >> mesh(z);
>> view(-37.5,-30); >> subplot(2,2,3);
>> mesh(z); >> view(180,0); >> subplot(2,2,4); >> mesh(z); >> view(0,90);
图5.2.6 对应不同观察点的三维曲面图
5.3 其他图形函数
除了plot 绘图函数以外,在有些场合对绘制的曲线会有一些特殊要求,这就要其他函
数来实现,常用的几种函数如下(见表5.3.1)
表5.3.1 其他图形函数表 函数 含义
loglog 使用对数坐标系绘图
semilogx 横坐标为对数坐标轴,纵坐标为线性坐标轴 semilogy 横坐标为线性坐标轴,纵坐标为对数坐标轴 polar 绘制极坐标图 fill 绘制实心图 bar 绘制直方图
pie 绘制饼图 area 绘制面积图 quiver 绘制向量场图 stairs 绘制阶梯图 sterm 绘制火柴杆图
例5.3.1
>> x=0:pi/10:2*pi; >> y1=sin(x); >> subplot(2,2,1); >> plot(x,y1); >> subplot(2,2,2); >> bar(x,y1); >> subplot(2,2,3); >> fill(x,y1,'g'); >> subplot(2,2,4); >> stairs(x,y1,'k');
图5.3.1 其他图形函数
5.3.1 直方图
函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种