Download presentation
Presentation is loading. Please wait.
1
第5章 MATLAB 绘图
2
5.1 图形窗口以其操作 1.图形窗口操作命令 P 207 figure 创建新的图形图像窗口 figure(gcf)显示当前图形窗口
gcf/shg 显示当前图形窗口 clf/clg 清除当前图形窗口 clc 清除命令窗口 home 光标到命令窗口的左上角 hold on 保持当前窗口 hold off 释放当前图形窗口 subplot(m,n,p)或subplot(mnp) 将图形窗口分成 m*n个窗口,p指定第一个窗口(从左到右,从上到下) MATLAB 7.X程序设计
3
例题: x=0:0.02:2*pi; plot(x,sin(x)) hold on plot(x,cos(x),’r’)
MATLAB 7.X程序设计
4
例题 subplot(223) plot(x,cos(x),'r') MATLAB 7.X程序设计
5
axis([xmin xmax ymin ymax]) axis equal:纵、横坐标轴采用等长刻度。
2.坐标轴、刻度和图形窗口缩放的操作 axis([xmin xmax ymin ymax]) axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置。 axis off:取消坐标轴。 axis on:显示坐标轴 MATLAB 7.X程序设计
6
xlim([xmin xmax]) 设定x轴的最大、最小值 grid on 是否绘制图形窗口的网格 grid off
box on 是否四周都设定坐标轴 box off xlim([xmin xmax]) 设定x轴的最大、最小值 grid on 是否绘制图形窗口的网格 grid off grid 在两者之间切换 MATLAB 7.X程序设计
7
P209 点型 线型和颜色 绘图函数的常用的颜色含义 类型 符号 蓝色(默认) b(Blue) 黄色 y(Yellow)
类型 符号 蓝色(默认) b(Blue) 黄色 y(Yellow) 品红色(紫色) m(Magenta) 青色 c(Cyan) 红色 r(Red) 绿色 g(Green) 白色 w(White) 黑色 k(Black) MATLAB 7.X程序设计
8
绘图函数的常用的线形含义 类型 符号 实线(默认) - 点线 : 点划线 虚线 MATLAB 7.X程序设计
9
绘图函数的常用的数据点形含义 类型 符号 实点标记(默认) . 圆圈标记 o 叉号形× x 星号标记* * 钻石形标记◇ d
类型 符号 实点标记(默认) . 圆圈标记 o 叉号形× x 星号标记* * 钻石形标记◇ d 向下的三角形标记 v 向上的三角形标记 ^ 向左的三角形标记 < 向右的三角形标记 > 五角星标记☆ p MATLAB 7.X程序设计
10
5.2二维绘图 Matlab7.0可以绘制二维数据曲线、函数曲线图、对数坐标图、数据散点图、条形图、饼图、极坐标图等 1.函数曲线图
fplot 函数实现 flot(‘fun’, ’lim’, tol, n, s) fun 函数名 ,多个函数时 ‘[fun1, fun2 ,fun3 ...]’ lim给定的绘图范围 比如 [0,100] tol 给定绘图的相对误差 s 可以是线性、点型和颜色 n 表示至少用n+1 个点在lim给定的范围内绘制fun给定的函数的曲线 fun ,lim 必不可少 tol,n,s 可选参数 MATLAB 7.X程序设计
11
再同一窗口绘制y=sinx ,y=cosx,y=sqrt(x)-1在[0,2pi]上的图像
fplot(‘[sin(x),cos(x),sqrt(x)-1]’,[0,2*pi]) fplot('[sin(x),cos(x),sqrt(x)-1]', [0,2*pi], 'k:', 200); MATLAB 7.X程序设计
12
[x,y]=fplot(‘fun’,lim) 不绘制图形,只将fplot的计算结果保存到变量x和y中
MATLAB 7.X程序设计
13
Plot:直角坐标系的二维图形的绘制函数 三种调用格式: 1) plot(y,’s’)
2.数据曲线图 Plot:直角坐标系的二维图形的绘制函数 三种调用格式: 1) plot(y,’s’) 功能:当y是向量时,元素的序号作为x坐标,元素值作为y坐标,对应绘制线性直角坐标系的二维图形。 当y是矩阵时,元素的所在列号作为x坐标,元素值作为y坐标,分别对应绘制线性直角坐标系的二维图形,曲线条数等于输入参数矩阵的列数。 MATLAB 7.X程序设计
14
(1) x和y均为向量,要求两向量的长度相同一致。分别作为x坐标和y坐标数据。
2) plot(x,y,’s’) 功能: (1) x和y均为向量,要求两向量的长度相同一致。分别作为x坐标和y坐标数据。 (2)x为向量,y为矩阵时,绘制y的行或列对于x的图形(其中行或列的选择取决于x,y的维数),若y为方阵,或y的列向量长度与x向量的长度致,则绘制出y矩阵的各列向量相对于x的一组二维图形;若y矩阵的行向量长度与x向量的长度一致,则绘制出y矩阵的各行向量相对于x的一组二维图形; (3)x为矩阵,y为向量,类似(2) (4)x,y同维的矩阵,则绘制出y列向量相对于x的列向量之间的一组二维图形 MATLAB 7.X程序设计
15
3)plot(x1,y1,’s1’,x2,y2,’s2’…,xn,yn,’sn’) 功能:绘制(xi,yi,’si’)对应的二维图形。
S是表示所绘图形的线形、点型和颜色的字符串。函数调用格式中的S是线形、点型和颜色的组合字符,默认值为b-.(蓝色点划线标记)。 MATLAB 7.X程序设计
16
y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y) 或者:
y=2e-0.5xcos(4πx) 程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y) 或者: fplot('2*exp(-0.5*x)*cos(4*pi*x)',[0,2*pi]); MATLAB 7.X程序设计
17
例 绘制行向量( )的图形。 例 在区间 内, 绘制曲线 。 MATLAB 7.X程序设计
18
求函数plot绘制曲线的句柄属性值 4)h=plot(...) MATLAB 7.X程序设计
19
分别绘制(x1,y1)和(x2,y2)的图形。其中x1和y1、 x2和y2为对应的向量或矩阵。
5) plotyy函数 Plotyy: 用不同标度在同一个坐标内绘制曲线 plotyy(x1,y1,x2,y2) 分别绘制(x1,y1)和(x2,y2)的图形。其中x1和y1、 x2和y2为对应的向量或矩阵。 MATLAB 7.X程序设计
20
y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。
例用不同标度在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2); MATLAB 7.X程序设计
21
3. 极坐标系绘图 Polar:极坐标系绘图函数 polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项)
其中theta为极坐标相角,rho为极坐标矢径,选项的内容与plot函数相似。 例 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,'-*'); 。 MATLAB 7.X程序设计
22
例 画出心形线 的 图像。 例 画出星形线 的图像。 MATLAB 7.X程序设计
23
x为向量:以x序号为横坐标,x的各个元素为纵坐标 x为矩阵: 参数‘grouped’,每行分成一组 ‘stacked’,每一行累加,再绘制
4.条形图 条形图用来表示一些数据的对比情况 bar(x,参数) 垂直方向 barh(x,参数) 水平方向 x为向量:以x序号为横坐标,x的各个元素为纵坐标 x为矩阵: 参数‘grouped’,每行分成一组 ‘stacked’,每一行累加,再绘制 width 一组内条形的间距 默认0.8 MATLAB 7.X程序设计
24
Y = round(rand(5,3)*10); subplot(2,2,1) bar(Y,'group') title 'Group'
bar(Y,'stack') title 'Stack' subplot(2,2,3) barh(Y,'stack') subplot(2,2,4) bar(Y,1.5) title 'Width = 1.5' MATLAB 7.X程序设计
25
x为向量:绘制x中每一个元素占全部向量总和的百分比饼图。 x为矩阵:占全部矩阵元素的百分比 参数:1:表示分离,0:表示不分离,维数与x相同
5.饼图 饼图常用来表示各种因素所占的比例 pie(x,参数) x为向量:绘制x中每一个元素占全部向量总和的百分比饼图。 x为矩阵:占全部矩阵元素的百分比 参数:1:表示分离,0:表示不分离,维数与x相同 MATLAB 7.X程序设计
26
例 x=[1 2 3;4 5 6;7 8 9] explode=[1 0 0 1 0 0 0 1 1 ] pie(x,explode)
MATLAB 7.X程序设计
27
概率分布图用于研究随机系统的数据分布情况 hist(y,x)绘制y在以x为中心的区间中分布个数的条形图
6.柱形图 概率分布图用于研究随机系统的数据分布情况 hist(y,x)绘制y在以x为中心的区间中分布个数的条形图 MATLAB 7.X程序设计
28
> x=[1 1 2 3 4] >> y=-10:1:5; >> hist(x,y)
MATLAB 7.X程序设计
29
7.其他 p220——222 MATLAB 7.X程序设计
30
在绘制三维网格图与曲面图时,往往先将要绘制图形的定义区域分成若干个网格,然后计算这些网格节点上的二元函数值。
5.3三维绘图 1.三维网格图与曲面图 在绘制三维网格图与曲面图时,往往先将要绘制图形的定义区域分成若干个网格,然后计算这些网格节点上的二元函数值。 网格绘制函数:meshgrid MATLAB 7.X程序设计
31
meshgrid:网格坐标矩阵的生成函数 [X,Y]=meshgrid(x,y)
功能:由向量x和y产生在x-y平面的各网格点坐标矩阵(X,Y)。其中向量x为1×n的行向量,向量y为1×m的行向量,产生的网格点坐标矩阵(X,Y)的元素为 坐标对(Xij,Yij),i=1,...,m,j=1,...,n。 MATLAB 7.X程序设计
32
注意向量x和y相同时,meshgrid函数也可以写成[X,Y]=meshgrid(x)。
例如 语句 x=[ ]; y=[5 6 7]; [U,V]=meshgrid(x,y) 功能:将x(1×n)向量和y(1×m)向量转换为(m×n)的矩阵。 MATLAB 7.X程序设计
33
Z=peaks(n)生成一个n阶高斯分布的方阵 [X,Y,Z]=peaks(n)并给出相应的x,y的矩阵。
Z=peaks(X,Y)由预先给定的向量X,Y生成高斯分布的矩阵。 MATLAB 7.X程序设计
34
三维网格图 mesh:三维网格图的绘制函数 mesh(z) mesh(x,y,z) mesh(x,y,z,c)其中c为的同维颜色矩阵。
功能:绘制三维网格图。当只有参数z时,以z矩阵的行下标作为x坐标轴,把z的列下标当作y坐标轴;x和y分别为x和y坐标轴的自变量。 当有x,y和z参数时,绘制出由坐标(xij, yij, zij)确定的三维网格图形。 meshc(x,y,z) 带等高线的网格图 meshz(x,y,z) 带底座的网格图 surf(x,y,z)绘制三维曲面 surfc(x,y,z)带等高线的三维曲面图 MATLAB 7.X程序设计
35
在x: [-4,4], y:[-4,4]区域上绘制z=x2+y2的三维网格图 [x,y]=meshgrid(-4:0.125:4);
例 P227 在x: [-4,4], y:[-4,4]区域上绘制z=x2+y2的三维网格图 [x,y]=meshgrid(-4:0.125:4); Z=x.^2+y.^2; Mesh(x,y,z) MATLAB 7.X程序设计
36
[X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshc(X,Y,Z);
axis([ ]) MATLAB 7.X程序设计
37
[X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); meshz(X,Y,Z)
MATLAB 7.X程序设计
38
colormap hsv //设置曲面显示的颜色 axis([-3 3 -3 3 -10 5])
[X,Y,Z] = peaks(30); surfc(X,Y,Z) colormap hsv //设置曲面显示的颜色 axis([ ]) MATLAB 7.X程序设计
39
线型、数据点形和颜色的含义同plot函数。
2.三维曲线图 229页 plot3 :三维曲线图形函数 plot3(x,y,z, 's') 功能:绘制三维曲线。 其中当x,y和z是相同的向量时,则绘制以x,y和z元素为坐标的三维曲线;当x,y和z是同型矩阵时,则绘制以x,y和z元素为坐标的三维曲线,且曲线的条数等于矩阵的列数。s是指定绘制三维曲线的线型、数据点形和颜色的字符串,省略s时,将自动选择线型、数据点形和颜色。 线型、数据点形和颜色的含义同plot函数。 MATLAB 7.X程序设计
40
对参数方程表示的三维曲线的绘制还有一个简单形式ezplot3, 调用格式为: ezplot3 (x,y,z,[tmin,tmax])
功能:绘制区间 范围内x = x(t), y = y(t)和z = z(t) 的三维曲线。 参数[tmin,tmax]的默认值为 。 MATLAB 7.X程序设计
41
例 绘制三维曲线 例 绘制三维曲线 MATLAB 7.X程序设计
42
ezplot3(‘t’,’sin(x)’,’cos(x)’);
t=0:pi/100:4*pi; ezplot3(‘t’,’sin(x)’,’cos(x)’); MATLAB 7.X程序设计
43
>> z=10*sin(y).*cos(x); >> plot3(x,y,z) >> grid on
MATLAB 7.X程序设计
44
5.5图形的注释(修饰) 将标题、坐标轴标记、网格线及文字注
释加注到图形上,添加的方法有使用 insert菜单,图形属性编辑器和相应的命令。insert菜单下的菜单下: xlable —— 给x轴加标注 ylable —— 给y轴加标注 title —— 给图形加标题 text —— 在图形指定位置加标注 legend —— 添加图例 colorbar ——添加颜色棒 line arrow 等等 MATLAB 7.X程序设计
45
添加标题的三种方法: 248——249页 菜单 使用属性编辑器 使用title 函数 MATLAB 7.X程序设计
46
matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形
256页 图形的颜色控制 图形颜色的修饰 matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形 colormap(MAP) —— 色图设定函数,MAP为m×3维色图矩阵 图形颜色可根据需要任意生成,也可用matlab配备的色图函数 MATLAB 7.X程序设计
47
调和色 [ ] — 灰色 [ ] — 暗红色 [ ] — 铜色 [ ] — 浅绿 [ ] —宝石兰 饱和色 [0 0 0] — 黑色 [0 0 1] — 兰色 [0 1 0] — 绿色 [0 1 1] — 浅兰 [1 0 0] — 红色 [1 0 1] — 粉红 [1 1 0] — 黄色 [1 1 1] — 白色 MATLAB 7.X程序设计
48
matlab 的色图函数: hsv —— 饱和值色图 gray —— 线性灰度色图 hot —— 暖色色图 cool —— 冷色色图
bone —— 兰色调灰色图 copper —— 铜色色图 pink —— 粉红色图 prism —— 光谱色图 jet ——饱和值色图II flag —— 红、白、蓝交替色图 MATLAB 7.X程序设计
49
颜色阴影的设置 shading 函数实现 MATLAB 7.X程序设计
50
shading faceted — 网格修饰,缺省方式
MATLAB 7.X程序设计
51
shading flat —— 去掉黑色线条,根据小方块的值确定颜色
MATLAB 7.X程序设计
52
shading interp —— 颜色整体改变,根据 小方块四角的值差补过度点的值确定颜色
MATLAB 7.X程序设计
53
peaks(30);shading interp;colormap(hot)
MATLAB 7.X程序设计
54
[X,Y,Z]=peaks(30);surfl(X,Y,Z) shading interp;colormap(cool);axis off
MATLAB 7.X程序设计
55
peaks(30);colormap(hot);colorbar('horiz') figure(2);colormap(cool);
MATLAB 7.X程序设计
56
subplot(2,2,2);mesh(z);view(-15,60);
视角修饰(函数view(az,el)) 258页 az ----方位角;el ---- 俯视角 省缺值为:az=-37.5; el=30 例。观察不同视角的波峰图形 z=peaks(40); subplot(2,2,1);mesh(z); subplot(2,2,2);mesh(z);view(-15,60); subplot(2,2,3);mesh(z);view(-90,0); subplot(2,2,4);mesh(z);view(-7,-10); MATLAB 7.X程序设计
57
MATLAB 7.X程序设计
Similar presentations