二维图形 三维图形 图形处理实例作业特殊二、三维图形
Matlab作图是通过描点、连线来实现的命令,PLOT(X,Y,S)
PLOT(X,Y)--画实线
PLOT(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn)
--将多条线画在一起
X,Y是向量,分别表示点的横坐标和纵坐标线型
y 黄色,点 - 连线
m 洋红 o 圈,短虚线
c 蓝绿色 x x-符号
-,长短线 r 红色
+ 加号 -- 长虚线
§ 1 二维图形 1.曲线图先取得曲线上点的坐标(即横坐标和纵坐标)
MATLAB作图然后将该点集的坐标传给 Matlab函数画图例 在 [0,2*pi]用红线画 sin(x),用蓝色圈画 cos(x).
x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,'r',x,z,’b0')

0 1 2 3 4 5 6 7
- 1
- 0,8
- 0,6
- 0,4
- 0,2
0
0,2
0,4
0,6
0,8
1
Matlab liti1
MATLAB作图
2.符号函数 (显函数、隐函数和参数方程 )画图
(1) ezplot
★ ezplot(‘x(t)’,’y(t)’,[tmin,tmax])
★ ezplot(‘f(x)’,[a,b])
★ ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax])
MATLAB作图表示在 a<x<b绘制显函数 f=f(x)的函数图表示在区间 xmin<x<xmax和 ymin<y<ymax绘制隐函数 f(x,y)=0的函数图表示在区间 tmin<t<tmax绘制参数方程
x=x(t),y=y(t) 的函数图例 在 [0,pi]上画 y=sin(x)的图形解 输入命令
ezplot(‘sin(x)’,[0,pi]) Matlab liti25
解 输入命令
ezplot(‘cos(t)^3’,’sin(t)^3’,[0.2*pi]) Matlab liti41
解 输入命令
ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) Matlab liti40
例 在 [0,2*pi]上画星形图
MATLAB作图例 在 [-2,0.5],[0,2]上画隐函数 0)s i n ( xye x
tytx 33 s i n,co s
(2) fplot
注意
fplot(‘fun’,lims)
MATLAB作图表示绘制字符串 fun指定的函数在
lims=[xmin,xmax]的图形,
[1] fun必须是 M文件的函数名或是独立变量为
x的字符串,
[2] fplot函数不能画参数方程和隐函数图形,
但在一个图上可以画多个图形。
例 在 [-1,2]上画图形输入命令,fplot(‘myfun1’,[-1,2])
Matlab liti43
Matlab liti28
解 输入命令,
fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1 1 –1 1])
例 在 [-2,2]范围内绘制函数 tanh的图形
Matlab liti42
MATLAB作图解 先建 M文件 myfun1.m:
function Y=myfun1(x)
Y=exp(2*x)+sin(3*x.^2)
)3s i n ( 22 xey x
解 fplot(‘tanh’,[-2,2])
tanh 返回指定角度的双曲正切值例 画 tanh(x),sin(x),cos(x),x,y取值范围 ]2,2[
3,对数坐标图在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换,对数转换有双对数坐标转换和单轴对数坐标转换两种,用 loglog函数可以实现双对数坐标转换,用 semilogx和 semilogy函数可以实现单轴对数坐标转换,
loglog(… ) 表示 x,y坐标都是对数坐标系
semilogx(… ) 表示 x 坐标轴是对数坐标系
semilogy(…) 表示 y 坐标轴是对数坐标系
plotyy 有两个 y坐标轴,一个在左边,一个在右边
MATLAB作图例 用方形标记创建一个简单的 loglog
解 输入命令,
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
grid on %标注格栅 Matlab liti37
例 创建一个简单的半对数坐标图
Matlab liti38
例 绘制 y=x3的函数图、对数坐标图、半对数坐标图
Matlab liti22 返回
MATLAB作图解 输入命令,
x=0:.1:10;
semilogy(x,10.^x)
三维图形
§ 2,空间曲线
§ 3,空间曲面返回
★ PLOT3(x,y,z,s)
例 在 [0,10*pi]画 x=sin(t),y=cos(t),z=t,
Matlab liti8
解 t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
rotate3d % 旋转
n维向量,分别表示曲线上点集的横坐标、纵坐标、函数值指定颜色、
线形等
MATLAB作图
§ 2 空间曲线 1.一条曲线
★ PLOT3(x,y,z)
例 画多条曲线观察函数 Z=(X+Y).^2.
注,meshgrid(x,y)的作用是产生一个以向量 x为行、向量 y为列的矩阵
Matlab liti9
X,y,z都是 m*n矩阵,对应的每一列表示一条曲线,
解 x=-3:0.1:3;y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
plot3(X,Y,Z)
返回
MATLAB作图
2.多条曲线例 画函数 Z=(X+Y).^2的图形,
(1) surf(x,y,z)画数据点 (x,y,z)表示的曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值
MATLAB作图§ 3 空间曲面解 x=-3:0.1:3;
y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
surf(X,Y,Z)
shading flat %将当前图形变得平滑
Matlab liti11
( 2) Mesh(x,y,z)
解 x=-3:0.1:3;y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
mesh(X,Y,Z) Matlab liti24
例 画出曲面 Z=(X+Y).^2在不同视角的网格图,
画网格曲面数据矩阵。分别表示数据点的横坐标、纵坐标、函数值
MATLAB作图
(3) meshz(X,Y,Z)
解 输入命令,
[X,Y]=meshgrid(-3:.125:3);
Z=peaks(X,Y);
Meshz(X,Y,Z)
例 绘 peaks的网格图
Matlab liti36
返回
MATLAB作图在网格周围画一个 curtain图 (如,参考平面 )
在图形上加格栅、图例和标注定制坐标图形保持分割窗口缩放图形改变视角
§
4
图形处理返回动 画
§ 4 处理图形 MATLAB作图
( 1) GRID ON,加格栅在当前图上
1.在图形上加格栅、图例和标注
GRID OFF,删除格栅
( 2) 在当前图上加图例
hh = ylabel(string)
hh = zlabel(string)
hh = title(string)
hh = xlabel(string)
例 在区间 [0,2*pi]画 sin(x)的图形,并加注图例
“自变量 X”、“函数 Y”、“示意图”,并加格栅,

x=linspace(0,2*pi,30);
y=sin(x);
plot(x,y)
xlabel('自变量 X')
ylabel('函数 Y')
title(‘示意图’ )
grid on
Matlab liti2
MATLAB作图将字符串水平标注在所绘图中由鼠标确定的位置例 在区间 [0,2*pi]画 sin(x),cos(x),并分别标注,sin(x)”,”cos(x)”.
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y,x,z)
gtext(‘sin(x)’);
gtext(’cos(x)’)
Matlab liti3
返回
MATLAB作图
( 3) hh=gtext(‘string’)
Axis([xmin xmax ymin ymax zmin zmax])
解 x=linspace(0.0001,0.01,1000);
y=sin(1./x);
plot(x,y)
axis([0.005 0.01 –1 1]) Matlab liti4
返回定制图形坐标将坐标轴返回到自动缺省值Axis auto
x,y,z 的最大、最小值
MATLAB作图2.
定制坐标例 在区间 [0.005,0.01]显示 sin(1/x)的图形。
(1) hold on
解 x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x)
plot(x,z,:)
hold on
Plot(x,y) Matlab liti5
保持当前图形,以便继续画图释放当前图形窗口
MATLAB作图3.
图形保持
hold off
例 将 y=sin(x),y=cos(x)分别用点和线画在一图上
(2) figure(h)
例 区间 [0,2*pi]新建两个窗口 分别画出
y=sin(x); z=cos(x)。
解 x=linspace(0,2*pi,100);
y=sin(x);z=cos(x);
plot(x,y);
title('sin(x)');
pause
figure(2);
plot(x,z);
title('cos(x)');
Matlab liti6
返回新建 h窗口,激活图形使其可见,并置于其它图形之上
MATLAB作图
x=linspace(0,2*pi,100);
y=sin(x); z=cos(x);
a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps)
subplot(2,2,1);plot(x,y),title(‘sin(x)’)
subplot(2,2,2);plot(x,z),title(‘cos(x)’)
subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’)
subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’)
例 将屏幕分割为四块,并分别画出 y=sin(x),
z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。
Matlab liti7
返回
MATLAB作图
subplot(mrows,ncols,thisplot)
4.分割窗口
zoom on
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为中心的图形放大 2倍解 x=linspace(0,2*pi,30);
y=sin(x);
Plot(x,y)
zoom on Matlab liti13
zoom off
为当前图形打开缩放模式关闭缩放模式返回
MATLAB作图5.
缩放图形例 缩放 y=sin(x)的图形
( 1) view(a,b)
解 x=-3:0.1:3; y=1:0.1:5;
[X,Y]=meshgrid(x,y);
Z=(X+Y).^2;
subplot(2,2,1),mesh(X,Y,Z)
subplot(2,2,2),mesh(X,Y,Z),view(50,-34)
subplot(2,2,3),mesh(X,Y,Z),view(-60,70)
subplot(2,2,4),mesh(X,Y,Z),view([0,1,1])
Matlab liti10
例 画出曲面 Z=(X+Y).^2在不同视角的网格图,
用空间矢量表示( 2) view( [x,y,z])
返回
MATLAB作图6.改变视角
a是方位角,b为仰角。缺省视角为( -37.5,30),
只关心三个量的比例,与大小无关,x轴 view( [1,0,
0]),y轴 view( [0,1,0]),z轴 view( [0,0,1]),
Moviein()产生一个帧矩阵来存放动画中的帧,
Matlab liti14
返回例 将曲面 peaks 做成动画。
解 [x,y,z]=peaks(30);
surf(x,y,z)
axis([-3 3 -3 3 -10 10])
m=moviein(15);
for i=1:15
view(-37.5+24*(i-1),30)
m(:,i)=getframe;
end
movie(m)
MATLAB作图7.动画制作
Getframe 对当前的图象进行快照,
movie() 按顺序回放各帧,
§ 5 特殊二、三维图形
1,特殊的二维图形函数
2,特殊的三维图形函数返回特殊的二维图形函数
1、极坐标图用角度 theta(弧度表示)和极半径 rho作极坐标图,
用 s指定线型。
例 的极坐标图形。? 2c o s2s i nr
解,theta=linspace(0,2*pi);
rho=sin(2*theta).*cos(2*theta);
polar(theta,rho,’g’)
title(‘Polar plot of sin(2*theta).*cos(2*theta)’);
Matlab liti15
MATLAB作图
polar (theta,rho,s)
2,散点图解 load seamount,scatter(x,y,5,z) Matlab liti29
3、平面等值线图解 [ X,Y] =meshgeid(-2:.2:2,-2:.2:3);
Z=X.*exp(-X.^2-Y.^2);
[C,h]=contour(X,Y,Z);
clabel(C,h) 放置等值线标签
colormap cool
Matlab liti34
例 绘制 seamount散点图返回
MATLAB作图在向量 X和 Y位置显示彩色圈,X和 Y必须大小相同.
绘制 n个等值线的二维等值线图例 在 -2<x<2,-2<y<3内绘等值线图 22 yxxez
scatter( X,Y,S,C)
contour (x,y,z,n)
特殊的三维图形函数
1、空间等值线图 n:等值线数例 山峰的三维和二维等值线图。
[x,y,z]=peaks;
subplot(1,2,1)
contour3(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
zlabel('z-axis')
title('contour3 of peaks');
subplot(1,2,2)
contour(x,y,z,16,'s')
grid,xlabel('x-axis'),ylabel('y-axis')
title('contour of peaks');
Matlab liti18
MATLAB作图
contour3(x,y,z,n)
2,三维散点图
[x,y,z]=sphere(16);
X=[x(:)*.5 x(:)*.75 x(:)];
Y=[y(:)*.5 y(:)*.75 y(:)];
Z=[z(:)*.5 z(:)*.75 z(:)];
S=repmat([1,75,5]*10,prod(size(x)),1);
C=repmat([1 2 3],prod(size(x)),1);
scatter3(X(:),Y(:),Z(:),S(:),C(:),'fille
d'),view(-60,60)
例 绘制三维散点图。
Matlab liti32
返回
MATLAB作图
scatter3( X,Y,Z,S,C)
在向量 X,Y和 Z指定的位置上显示彩色圆圈,
向量 X,Y和 Z的大小必须相同,
绘制山区地貌图要在某山区方圆大约 27平方公里范围内修建一条公路,
从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔 400米测量一次,得到一些地点的高程,(平面区域 0<=x<=5600,0<=y<=4800),需作出 该山区的地貌图和等高线图。
Matlab shanqu 返回返回实验作业
1、在同一平面中的两个窗口分别画出心形线和马鞍面 。
要求,1,在图形上加格栅、图例和标注
2,定制坐标
3、以不同角度观察马鞍面
2、以不同的视角观察球面 和圆柱面 所围区域。
2222 rzyx
rxyx 22