第 4章 Matlab的图形功能
3.等高线图形的绘制函数 contour 和 contour3 可绘制出二维和三维图形的等高线 。 contour和 contour3 的调用方式相同,只是
contour3 要绘制相应的 z 轴 。
contour调用方式:
contour(Z),直接绘制矩阵 Z 的等高线;
contour(X,Y,Z),用 X 和 Y 指定等高线的 x,y 坐标;
contour(Z,n) 和 contour(X,Y,Z,n),绘制 n 条等高线;
contour(Z,V) 和 contour(X,Y,Z,V),向量 V 的元素指定等高线的位置,该向量长度 length(V)对应绘制的等高线条数。
第 4章 Matlab的图形功能绘制高斯三维分布曲面的等高线及二维等高线 。
contour(peaks,30) %绘制二维山峰的等高线,等高线的条数为 30
contour3(peaks,20) %绘制三维山峰图像的等高线,等高线的条数为 20
函数 clabel 标注高度值,函数 contourf 绘制填充的二维等高线。
4.三维视图可视效果的控制三维图形 观察点和视觉 的控制 view
使用格式为:
view(AZ,EL)和 view([AZ,EL]),通过方位角 AZ和俯视角
EL设置观察图形的视点 。
view([X Y Z]),通过直角坐标系设置视点;
[AZ,EL] = view,返回当前的方位角 AZ和俯视角 EL;
view(T),用一个 4× 4 的转矩阵 T 来设置视角;
T=view,返回当前的 4× 4 的转矩阵 。
view(2),设置 缺省的二维视角 AZ = 0,EL = 90。
view(3),设置 缺省的三维视角 AZ = -37.5,EL = 30。
三维图形的照相 campos,三维图形的透视命令 hidden,曲面图形颜色的遮掩
shading; 光源的建立 light,照明方式 lighting,控制光效果的材质命令 material
第 4章 Matlab的图形功能函数 view 的用法 。
[X,Y]=meshgrid(-8:0.5:8);
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
subplot(2,2,1) %缺省视角
surf(X,Y,Z)
xlabel('X 轴 ','FontWeight','bold')
ylabel('y 轴 ','FontWeight','bold')
zlabel('z 轴 ','FontWeight','bold')
title('\fontname {隶书 } 缺省视角 ')
subplot(2,2,2)
surf(X,Y,Z)
xlabel('X 轴 ','FontWeight','bold')
ylabel('y 轴 ','FontWeight','bold')
zlabel('z 轴 ','FontWeight','bold')
title(' \fontname {隶书 } 方位角为 90° 仰角为 0° ')
view(90,0)
subplot(2,2,3)
surf(X,Y,Z)
xlabel('X 轴 ','FontWeight','bold')
ylabel('y 轴 ','FontWeight','bold')
zlabel('z 轴 ','FontWeight','bold')
title('\fontname {隶书 } 方位角为 -37.5° 仰角为 80° ')
view(-37.5,80)
第 4章 Matlab的图形功能
subplot(2,2,4)
surf(X,Y,Z)
xlabel('X 轴 ','FontWeight','bold')
ylabel('y 轴 ','FontWeight','bold')
zlabel('z 轴 ','FontWeight','bold')
title('\fontname {隶书 } 方位角为 0° 仰角为 90° ')
view(0,90)
第 4章 Matlab的图形功能
5.柱面和球面的三维表达
a.柱面的表达 cylinder
cylinder命令中,柱面的轴线定义为 z 轴,只要给出 母线 的描述就可完成一个柱面。
调用格式为:
[X,Y,Z] = cylinder(R,N);
[X,Y,Z] = cylinder(R),缺省值 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
第 4章 Matlab的图形功能
b.球面的表达 sphere
调用格式为:
[X,Y,Z]=sphere(N),产生一个 ( N+1) × ( N+1) 的矩阵,
然后用函数 surf 命令绘制一个 单位的球面,N 为设置分割线的条数 ;
[X,Y,Z] = sphere,缺省值 N = 20。
画一个球面。
[X,Y,Z]=sphere;
surf(X,Y,Z)
第 4章 Matlab的图形功能四、特殊图形绘制为了将抽象的数据表达得更形象,除了绘制 二维,三维 图形外,还要用到 直方图,面积图,饼图 等特殊图形 。
特殊图形指令第 4章 Matlab的图形功能
1.面积图命令 area
表现各个不同部分对整体所作的贡献
area(X,Y),与 plot 的命令的使用方法相似,将连线图到 x 轴 的那部分填上了颜色;
area(Y),缺省值 X=1:SIZE(Y);
area(X,Y,LEVEL)或 area(Y,LEVEL),填色部分为 由连线图到 y=level 的水平线 之间的部分。
绘制一面积图
X=-2:2;
Y=[3,5,2,4,1;5,4,2,3,5;3,4,5,2,1];
area(X',Y')
legend('因素 1','因素 2','因素 3')
grid on
第 4章 Matlab的图形功能
2.直方图命令 bar
直方图常用于统计数据的作图,有 bar,bar3,barh 和
bar3h几种函数,其调用格式类似。
以函数 bar 为例:
bar(X,Y),X 是横坐标向量,Y 可以是向量或矩阵 。 Y 是 向量 时,每一个元素对应一个竖条; Y 是 m 行 n 列 矩阵 时,将画出 m 组竖条,
每组包括 n 个竖条;
bar(Y),横坐标使用缺省值 X=1:M;
bar(X,Y,WIDTH) 或 bar(Y,WIDTH),用 WIDTH 指定 竖条的宽度,
如果 WIDTH> 1,条与条之间将重合 。 缺省宽度为 0.8;
bar(...,’grouped’),产生缺省的 组合 直方图;
bar(...,’stacked’),产生 累积的 直方图;
bar(...,linespec),指定 条的颜色 ;
H = bar(...),返回条形图对象的 句柄 。
第 4章 Matlab的图形功能用绘制直方图的几种命令绘制直方图。
X=-2:2;
Y=[3,5,2,4,1;5,4,2,3,5;3,4,5,2,1];
subplot(2,2,1)
bar(X,Y','r')
xlabel('x')
ylabel('y')
colormap(cool)
subplot(2,2,2)
barh(X,Y','grouped')
xlabel('y')
ylabel('x')
colormap(cool)
subplot(2,2,3)
bar(X,Y','stacked')
xlabel('x')
ylabel('\Sigma y')
colormap(summer)
subplot(2,2,4)
barh(X,Y','stacked')
xlabel('y');ylabel('\Sigma x')
colormap(summer)
第 4章 Matlab的图形功能绘制三维直方图。
X=-2:2;
Y=[3,5,2,4,1;5,4,2,3,5;3,4,5,2,1];
subplot(2,2,1)
bar3(X,Y','r')
zlabel('y')
ylabel('x')
colormap(cool)
subplot(2,2,2)
bar3h(X,Y','grouped')
ylabel('x')
zlabel('y')
colormap(cool)
subplot(2,2,3)
bar3(X,Y','stacked')
ylabel('x')
zlabel('\Sigma y')
colormap(summer)
subplot(2,2,4)
bar3h(X,Y’,’stacked’)
zlabel(’x’)
ylabel(’\Sigma y’)
colormap(summer)
第 4章 Matlab的图形功能
3.饼图命令 pie
饼图又叫 扇形图,用于 显示向量中元素所占向量元素总和的百分比 。 pie 和 pie3分别用于绘制二维和三维饼图。
调用格式:
pie(X),向量 X 的饼图 。 把 X 的每一个元素在所有元素总和中占的比例表达出来;
pie(X,EXPLODE),向量 EXPLODE( 和向量 X长度相等 ) 用于指定饼图中 抽出一部分的块 ( 非零值对应的块 ) ;
pie(...,LABELS),LABELS 是用于 标注 饼图的字符串数组,其长度必须和向量 X相等;
H = pie(...),返回包括 饼图 和文本对象 句柄 。
用函数 pie 和 pie3 绘制饼图。
x=[200,360,120,400,320];
subplot(2,2,1),
pie(x,[0 0 0 1 0])
subplot(2,2,2),
pie3(x,[0 0 0 1 0])
subplot(2,2,3),
pie(x(2:5))
subplot(2,2,4),
x=[0.1,0.12,0.21,0.34,0.11];
pie3(x,{'A','B','C','D','E'})
第 4章 Matlab的图形功能第 4章 Matlab的图形功能五、极坐标、柱坐标和球坐标系下绘制图形
1.极坐标系下绘制图形
ploar是直接在极坐标系下绘图的命令调用格式为,ploar(THETA,RHO,S)
其中 S 是字符串,用来控制图形的线型 。
绘制半径为 2 的渐开线 。
rhe=2;
theta=0:pi/20:4*pi;
rho=rhe+theta*rhe;
polar(theta,rho,'r')
第 4章 Matlab的图形功能
2.柱坐标系和球坐标系下绘制图形在 MATLAB 中 没有 在柱坐标和球坐标下 直接绘制 数据图形的命令,但 pol2cart 和 sph2cart 命令能够将 柱坐标和 球坐标 值转化为 直角坐标系下 的坐标值,然后在直角坐标下绘制数据图形 。
a,pol2cart 函数将柱坐标转化为直角坐标,其调用格式为:
[X,Y] = pol2cart(TH,R)
[X,Y,Z] = pol2cart(TH,R,Z)
参数 TH 表示极坐标系下的角度向量或矩阵,R 是极半径向量或矩阵,Z 是极坐标下的高度向量或矩阵。 它们必须大小相等或成比例 。 X,Y,Z 为直角坐标系下的坐标向量或矩阵。
第 4章 Matlab的图形功能
b,sph2cart 命令将 球坐标转化直角坐标,其调用格式为:
[X,Y,Z] = sph2cart(TH,PHI,R)
参数 TH 为球坐标系下的方位角( Azimuth),PHI 是球坐标系下的俯视角( Elevation),R 是球半径。他们的大小必须相等或成比例 。 X,Y,Z 为直角坐标系下的坐标向量或矩阵。
函数 pol2cart和 sph2cart的用法 。
theta=0:pi/20:6*pi;
rho=sin(theta);
[t,r]=meshgrid(theta,rho);
z=r.*t;
[X,Y,Z]=pol2cart(t,r,z);
mesh(X,Y,Z)
phi=theta.^2-theta;
[t1,p1]=meshgrid(theta,phi);
r1=p1.*t1;
figure(2) %绘制球坐标转化直角坐标时的图形
[X1,Y1,Z1]=sph2cart(t1,p1,r1);
mesh(X1,Y1,Z1)
第 4章 Matlab的图形功能第 4章 Matlab的图形功能六、坐标轴的调整和图形的标注
1.坐标轴 调整 命令第 4章 Matlab的图形功能
2.图形标注
a.坐标轴和图形标题标注
标注 坐标轴 x,y 和 z 的命令函数为 xlabel,ylabel 和
zlabel,调用格式为:
xlabel(’text’)
xlabel(’text’,’Property1’,PropertyValue1,’Property2’,Prope
rtyValue2,...)
H = xlabel(...) 返回坐标轴标注的 句柄 。
其中,’ text’是要添加的标注文本 。 ’ Property’是文本的属性名,’ PropertyValue’是属性值 ( 所用字体,大小,标注角度等 ) 。
图形加 标题 的函数为 title,其调用格式与坐标轴标注类似。
特征字符串 中的希腊字母第 4章 Matlab的图形功能特征字符串 中的其他字符第 4章 Matlab的图形功能第 4章 Matlab的图形功能
b,图例的标注
legend命令 实现不同图例的说明 。 其调用格式为:
legend(string1,string2,string3,...)
legend(string1,string2,string3,...,Pos)
按顺序 把 字符串 添加到相应的曲线 线型符号 之后; Pos对图例的位置作出设置和调整:
0 = 自动把图例置于 最佳位置 ( 和图中曲线重复最少 ) ;
1 = 置于图形窗口的 右上角 ( 缺省值 ) ;
2 = 置于图形窗口的 左上角 ;
3 = 置于图形窗口的 左下角 ;
4 = 置于图形窗口的 右下角 ;
-1 = 置于图形窗口的 右侧( 外部 )。
3,控制分格线对二维和三维图形都适用 。
有三种用法:
grid on,打开 分格线控制开关,以后绘制的图形都带有分格线;
grid off,关闭 分格线控制开关,以后绘制的图形都不带分格线;
grid,用于 实现分格线绘制切换 。
第 4章 Matlab的图形功能第 4章 Matlab的图形功能绘制图形,并用函数 xlabel,title 和 legend 命令进行标注。
t=0:0.1:4*pi; y=sin(t); y1=cos(t); plot(t,y,':',t,y1,'r*')
xlabel('x 轴 (0--4\pi)','fontsize',12,'fontweight','bold')
ylabel('y 轴 ','fontsize',12,'fontweight','bold')
title('绘制正弦波和余弦波 Pos=1','fontsize',10,'fontweight','bold','fontangle','italic')
text(pi,0,'\leftarrowsin(\pi)=0')
text(pi,-1,'\leftarrowcos(\pi)=-1')
text(pi/2,0.9,['\uparrowsin(\pi/2)=',num2str(sin(pi/2))])
text(0,-0.6,['绘图日期,',date])
text(0,-0.8,['MATLAB 版本,',version])
legend('正弦波 ','余弦波 ')
figure(2)
plot(t,y,':',t,y1,'r*')
title('绘制正弦波和余弦波 Pos=0','fontsize',10,'fontweight','bold','fontangle','italic')
legend('正弦波 ','余弦波 ',0)
grid on
figure(3)
plot(t,y,':',t,y1,'r*')
title('绘制正弦波和余弦波 Pos=-1','fontsize',10,'fontweight','bold','fontangle','italic')
第 4章 Matlab的图形功能
text(7*pi/2,0,'\rightarrowcos(\pi*7/2)=0')
legend('正弦波 ','余弦波 ',-1)
grid off