第 4章 Matlab的图形功能
( 1) 掌握 图形窗口 的创建与控制,以及图形窗口的 基本操作 ;
( 2) 熟练掌握 二维和三维绘图基本的命令,着色,线型控制;
( 3) 初步掌握用 特殊的图形 来表现特殊数据的性质,如面积图,直方图,饼图等 。
( 4) 了解在 极坐标,柱坐标和球坐标系 下绘制图形 。
( 5) 掌握 坐标轴的控制和图形标注命令 及其用法 。
( 6) 了解 句柄图形 的概念和 图形对象的结构层次,掌握图形对象 属性的获取 及利用 图形对象属性编辑器 设置对象属性的方法 。
( 7) 掌握用 GUI 设计用户界面 菜单对象 和用户界面 控制对象 的方法 。
一、图形窗口
创建图形窗口的命令为 figure,有两种调用格式:
figure/ figure(n)
也可以由菜单创建:
File->New->Figure
图形窗口的操作及控制第 4章 Matlab的图形功能
>>figure(1)
>>x=0:0.1:1;
>>y=sin(x);
>>plot(x,y)
第 4章 Matlab的图形功能二、二维平面图形与坐标系
1,几个基本的绘图命令
a,线性坐标曲线 plot
函数命令 plot 是 MATLAB 二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以 生成线段、
曲线和参数方程曲线 的函数图形。
命令格式,
plot(y),单参数式 ( y为纵坐标向量,横坐标为向量 [1 2 3 4 … ])
plot(x,y),参数式 ( x 为横坐标向量,y为纵坐标向量 )
plot(Y),m× n 矩阵式 (矩阵的 每列为纵坐标,横坐标为向量 [1:m])
plot(X,Y),混合式
plot(Z),复向量式
plot(x1,y1,x2,y2,… ),综合调用方式第 4章 Matlab的图形功能用命令 plot(y)绘曲线,其中 y=[5 3 4 9 0 2 3]。
y=[5 3 4 9 0 2 3];
plot(y)
用命令 plot(x,y)绘制函数 y=cos(x)在两个周期内的图形 。
x=0:0.01:2*pi;
y=cos(x);
plot(x,y)
在同一图形窗口中 用命令 plot(x,y)绘出正弦余弦函数的图形 。
x=0:0.01:2*pi;
y=[sin(x);cos(x)];
plot(x,y)
用命令 plot(Y)绘制矩阵 Y=[5 4 3 8 9 10; 3 4 4 5 8 2 ; 8 12 13 21 18 25 ;
9 8 8 9 6 7]的图形 。
Y=[5 4 3 8 9 10;3 4 4 5 8 2 ;8 12 13 21 18 25 ;9 8 8 9 6 7];
plot(Y)
第 4章 Matlab的图形功能在 混合式 的命令格式 plot(X,Y)中,对 X和 Y而言,可分下列几种情况:
◆ 如果 X 和 Y 都是向量,则长度必须相等;
◆ 如果 X 是向量,而 Y 是一个矩阵,X 的长度与矩阵 Y
的行数或列数相等,则它的作用是将向量 X 与矩阵 Y 的每列或每行的向量相对应作折 ( 曲 ) 线,当 Y 是 方阵 时,
则将向量 X 与矩阵 Y 的 列向量 对应作图;
◆ 如果 X 是矩阵,Y 是向量,Y 的长度等于矩阵 X 的行数或列数,则将 X 的每列或每行的向量与 Y 相对应作图 。
当 X 是 方阵 时,则将 X 的各列 与 Y 对应作图;
◆ 如果 X 和 Y 都是矩阵,且维数相同,则按 列与列 的对应方式来作图 。
第 4章 Matlab的图形功能用命令 plot(X,Y) 绘制图形 。
x=1:length(peaks);
plot(x,peaks)
注意:
>> peaks
z = 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)
第 4章 Matlab的图形功能用 plot(Z)绘制图形 。
x=0:pi/20:2*pi;
Z=sin(x)+cos(x)*i
plot(Z)
等价于 plot(real(Z),imag(Z))
用 plot(x1,y1,x2,y2,… )在同一窗口中绘制多条曲线,且坐标和长度都不同 。
t1=0:0.1:3*pi;
t2=0:0.1:6;
plot(t1,sin(t1),t2,sqrt(t2))
第 4章 Matlab的图形功能
b.二维函数 曲线 专用命令 fplot
用 plot绘图在确定自变量的取值间隔时,一般采用 平均间隔,有时会因某处 间距太大,而 不能反映出函数的变化 情况。 fplot是绘制函数 y=f(x)
图形的专用命令,它的 数据点是自适应产生的,对那些导数变化较大的函数,用 fplot 函数绘出的曲线比等分取点所画出的曲线 更加接近真实 。
fplot 函数命令的调用格式为:
[X,Y]=fplot(fun,lims,tol,n,‘linespec’,p1,p2… )
fun,函数名字符串;
lims,定义 x 的取值区间,lims=[xmin,xmax];
tol,相对误差 ( 默认值为 2e-3) ;
n,绘图的最少点数 ( n+1) ;
‘linespec’,线性设置;
p1,p2,…,函数传递参数;
X,Y,数组数据点坐标。
第 4章 Matlab的图形功能
fplot 和 plot 命令的比较 。
( 1) 创建函数 M 文件 funfplot。
function y=funfplot(x)
y=sin(1./tan(pi.*x));
( 2) 将 用 fplot 命令求得的坐标点 按照对应大小创建一个 等间距坐标点 赋值给矩阵 X,Y。
[X,Y]=fplot('funfplot',[-0.1,0.1],2e-4);
%只 把数据点坐标输入 X,Y,而不显示图形 。
%要使用 tol,n 或是 ’ linespec’的默认参数,可以给函数传递一个 []作为参数 。
x=-0.1:1/1000*pi:0.1;
y=funfplot(x);
( 3) 用 plot和 fplot命令作图,比较二者的不同:
plot(x,y)
figure(2) %打开一个新的图形窗口
plot(X,Y)
%该命令等价于 fplot(’funfplot’,[-0.1,0.1],2e-4);
第 4章 Matlab的图形功能
c.对数坐标曲线命令绘制二维对数坐标曲线的命令 semilogx,semilogy 和 loglog,
其 用法和函数 plot 相同。
函数 semilogx 横坐标 为对数坐标;
函数 semilogy 纵坐标 为对数坐标;
函数 loglog 横、纵坐标 均为对数坐标。
绘制正弦函数的对数坐标曲线。
t=0.1:0.1:3*pi;
y=sin(t);
figure(1)
semilogx(t,y)
grid on %为图形窗口添加网格
figure(2)
semilogy(t,y)
figure(3)
loglog(t,y)
第 4章 Matlab的图形功能
d.双 y 轴图形绘制 左右均有 y 轴 的图形
plotyy(x1,y1,x2,y2)
在窗口中同时绘制两条曲线,(x1,y1)和 (x2,y2),曲线 (x1,y1)用左侧的 y 轴,曲线 (x2,y2)用右侧的 y 轴。
plotyy(x1,y1,x2,y2,‘fun’)
’fun’是字符串,用来指定绘图的 函数 名,如 plot,semilogx,semilogy 等 。
plotyy(z1,y1,x2,y2,‘fun1’,‘fun2’)
用 ’ fun1’和 ’ fun2’指定 不同的绘图函数 分别绘制。
用 plotyy 函数绘制双 y 轴图形。
t1=0:0.1:3*pi;
t2=0:0.1:6;
y1=sin(t1);
y2=sqrt(t2);
plotyy(t1,y1,t2,y2,'semilogx')
grid on
第 4章 Matlab的图形功能在同一图形窗口中用不同的绘图函数绘制同一函数曲线 的双 y 轴图形 。
x=0:0.1:6;
y=sqrt(x);
plotyy(x,y,x,y,’semilogy’,’plot’)
plotyy 函数不能加入设置曲线线型、颜色及标出数据点的参数。
xy?
第 4章 Matlab的图形功能
2.线型和颜色
plot 函数可以设置曲线的 线段类型、定点标记和线段颜色 。
常用的线段、颜色与定点标记参数调用格式,plot(x,y,s),s 为类型说明参数,是字符串。
s 字符串 可以是三种类型的 符号之一,也可以是线型与颜色和定点标记与颜色的 组合 ;
如果 没有 s 参数,plot 将使用 缺省设置(实线,前七种颜色顺序着色 )
绘制曲线;
在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用 hold on 命令 在一个坐标系中 增加新的图形对象 。注意 MATLAB会根据新图形的大小,重新改变坐标系的比例。
用不同的 线型和标注 来绘制两条曲线 。
t1=0:0.1:2*pi;
t2=0:0.1:6;
y1=sin(t1);
y2=sqrt(t2);
plot(t1,y1,':hb',t2,y2,'--g')
第 4章 Matlab的图形功能第 4章 Matlab的图形功能
3,图形窗口的分割有时需要在 一个图形窗口中显示几幅图,以便对几个函数进行直观,
便捷的比较 。 由于每个绘图命令在绘制数据图像时都会将已有图形覆盖掉,而用 hold 命令不能实现同时显示几个不同坐标尺寸下的图形,用 figure 命令再创窗口又很难同时比较由不同的数据绘得的图像 。
实现在 同一个窗口中同时显示多个图像 的命令 subplot。
使用格式为:
subplot(m,n,i)
其含义为,把图形窗口分割为 m 行 n 列子窗口,然后选定 第 i 个窗口为当前窗口 。
subplot 命令不仅用于 二维图形,对 三维图形 一样适用 。 其本质是将
figure窗口分为几个区域,再在每个区域内分别绘图 。
第 4章 Matlab的图形功能用 subplot 函数 把两种不同的图形综合在一个图形窗口中 。
subplot(2,2,1)
t=0.1:0.1:2*pi;
y=sin(t);
semilogx(t,y)
grid on
subplot(2,2,2)
t=0:0.1:4*pi;
y=sin(t);
plot(t,y)
subplot(2,2,3)
x=1:0.01:5;
y=exp(x);
plotyy(x,y,x,y,’semilogx’,’plot’)
subplot(2,2,4)
x=1:0.1:10;
y=sqrt(x);
plot(x,y,’:rd’)
第 4章 Matlab的图形功能
4,坐标系的调整实现坐标系的调整的命令是 axis 函数。
调用格式为,axis([xmin,xmax,ymin,ymax,zmin,zmax])
坐标的最小值( xmin,ymin,zmin) 必须小于相应的最大值
( xmax,ymax,zmax),否则会出错。
自动坐标系与用 axis 函数 调整后的坐标系的比较 。
subplot(2,1,1)
t=0:0.1:4*pi;
y=sin(t);
plot(t,y)
subplot(2,1,2)
t=0:0.1:4*pi;
y=sin(t);
plot(t,y)
axis([0,max(t),min(y),max(y)])
第 4章 Matlab的图形功能三,三维绘图
1,三维 曲线 绘图命令三维函数 plot3主要用来表现 单参数的三维曲线,与二维绘图函数 plot 相比,只多了 第三维数据 。
其调用格式为:
plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,… )或 plot3(X,Y,Z,s)
参数的含义如下:
Xn,Yn,Zn,第一到三维数据,是 尺寸相等的 向量 /矩阵;
s,s1,s2,是 字符串,用来设置 线型,颜色,数据点 标记 。
X,Y,Z 是 向量时,绘制以向量 X,Y,Z 的 元素为 x,y,z 坐标 的三维曲线 。
X,Y,Z 是 矩阵时,以 X,Y,Z 对应列元素为 x,y,z 坐标 分别绘制曲线。
第 4章 Matlab的图形功能
x,y,z 是向量时,plot3命令的使用
t=0:0.1:8*pi;
plot3(sin(t),cos(t),t)
title(’绘制螺旋线 ’ ) %用命令 title 对图形主题进行标注
xlabel(’sin(t)’,’FontWeight’,’bold’,’FontAngle’,’italic’)
ylabel(’cos(t)’,’FontWeight’,’bold’,’FontAngle’,’italic’)
zlabel(’t’,’FontWeight’,’bold’,’FontAngle’,’italic’)
%命令 zlabel 用来指定 z 轴的数据名称
grid on
x,y,z 都是矩阵时,plot3命令的使用
[X,Y]=meshgrid(-pi:0.1:pi);
Z=sin(X)+cos(Y);
plot3(X,Y,Z)
第 4章 Matlab的图形功能
2.三维曲面绘图命令为了绘制定义在平面区域 D =[x0,xm]× [y0,yn ]上的 三维曲面 z=f(x,y),首先将 [x0,xm]在 x 方向分成 m 份,
将 [y0,yn]在 y 方向分成 n 份,由各划点分别作平行于坐标轴的直线,将 区域 D 分成 m× n 个小矩形 ;对于每个小矩形,计算出 网格点的函数值,决定出空间中四个顶点( xi,yi,f(xi,yi)),连接四个顶点得到一个 空间的四边形片 ;所有四边形片连在一起构成函数 z=f(x,y)定义在区域 D 上的 空间网格曲面 。
因此,三维曲面绘图命令可分为 平面网格点的生成,在平面网格基础上 绘制三维网格 及对 三维表面进行处理 三个步骤。
a.平面网格点的生成函数命令 meshgrid 用来生成 x-y 平面上的网格点矩阵 。
调用形式为:
[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x) 等价于 [X,Y]=meshgrid(x,x)
参数含义如下:
x,是区间 [x0,xm]上分划的向量;
y,是区间 [y0,yn]上分划的向量;
X,Y,输出变量矩阵,矩阵 X 的行向量都是向量 x,矩阵 Y 的列向量都是向量 y。
函数 meshgrid 将 由两个向量决定的区域转换为对应的网格点矩阵 。
第 4章 Matlab的图形功能第 4章 Matlab的图形功能函数,定义区域为 [-2,2]× [-2,2]。 生成网格并 计算其网格点上的函数值 。
[X,Y] = meshgrid(-2:2:2,-2:2:2);
[X,Y] %将划分结果输出至矩阵
ans =
-2 0 2 -2 -2 -2
-2 0 2 0 0 0
-2 0 2 2 2 2
Z = X,* exp(-X.^2 - Y.^2); %计算网格点上的函数值赋予变量
Z
Z =
-0.0007 0 0.0007
-0.0366 0 0.0366
-0.0007 0 0.0007
22 yxexz
第 4章 Matlab的图形功能
b.三维网格命令 mesh
利用 函数 mesh生成网格曲面 。
调用格式为:
mesh(X,Y,Z,C),X,Y,Z,C 是同维数的矩阵,X,Y,Z 对应空间上的网格点,网格线颜色由 C决定;
mesh(X,Y,Z),相当于上面的 C=Z的情况;
mesh(x,y,Z,C),x 和 y 是向量,Z 和 C 是同维数的矩阵,网格曲面的网格顶点是 ( x(j),y(i),Z(i,j)),网格线的颜色由矩阵 C 决定;
mesh(x,y,Z),相当于上面的 C=Z的情况;
mesh(Z,C),等价于 mesh(x,y,Z,C),此时向量 x=1:n,向量
y=1:m;
mesh(Z),相当于上面的 C=Z 的情况
mesh(...,’PropertyName’,PropertyValue,...),给函 mesh设置曲面属性 。
第 4章 Matlab的图形功能用 mesh 命令绘制上例中的网格曲面 。
[X,Y] = meshgrid(-2:.2:2,-2:.2:2);
Z = X,* exp(-X.^2 - Y.^2);
mesh(Z)
与 mesh 相关的另外两个函数是
meshc 和 meshz,
它们的调用形式与 mesh 相同。
meshc 除生成网格曲面外,还在 x-y 平面上生成曲面的 等高线图形 ; meshz 除生成与 mesh 相同的网格曲面外,还在曲面下面加上一个 长方体的台柱 。
比较函数 meshc 和 meshz 。
[X,Y] = meshgrid(-2:.2:2,-2:.2:2);
Z = X,* exp(-X.^2 - Y.^2);
Subplot(2,1,1)
meshc(Z)
subplot(2,1,2)
meshz(Z)
第 4章 Matlab的图形功能第 4章 Matlab的图形功能
c,三维表面命令 surf
函数 surf 可实现 对网格曲面片进行着色,将网格曲面转化为 实曲面 。 surf 命令的调用格式与 mesh 相同 。
利用三维网格表面命令 surf绘制图形 。
z=peaks; %绘制山峰的图像,将函数值赋予变量 z
surf(z) %对山峰的图像进行着色处理
shading interp %函数 shading 改变着色方式上机练习( 7)
( 1) 按照的步长间隔 绘制函数 在 0≤x≤1
时的曲线 。
( 2) 用图形表示离散函数,其中 n 为 [0,12]
的自然数 。
( 3) 分别采用,的步长,绘制连续调制波形 的图像 。
( 4) 给出一系列的 a 值,采用函数 画一组椭圆 。
1.0x xxey
16 ny
10
1x
100
1
)9s in()s in( tty?
125 2222 ayax
( 5)用曲面图命令 surf 表现函数 的图像。
( 6)绘制颜色为蓝色,数据点用五角星标识的下述函数在 (0,5)上的虚线图。
22 yxz
xxey s in?
上机习题( 7)