当前位置:
文档之家› Matlab第8章 图形处理
Matlab第8章 图形处理
5
3. 如果已经存在一个图形窗口,plot命令则清 除当前图形,绘制新图形 4. 可单窗口单曲线绘图;可单窗口多曲线绘图; 可单窗口多曲线分图绘图;可多窗口绘图 5. 可任意设定曲线颜色和线型 6. 可给图形加坐标网线和图形加注功能
6
plot的常用格式 1) plot(x,y,’s’) —— 基本格式,绘制以x为横 坐标,y为纵坐标的二维曲线 2) plot(x1,y1,’s’, x2,y2,’s’) —— 多条曲线绘 图格式 ‘s’是绘图参数,将在后面介绍 x,y可以是向量或矩阵,根据x、y的类型 不同,可分以下几种情况。
22
3、文字标注 title(s) 字符串s作为图形标题。 xlabel(s) 字符串s作为横坐标标注。 ylabel(s) 字符串s作为纵坐标标注。 legend(str1,str2 ,…) 在当前图上输出图例, 并用说明性字符串str1, str2等作为标注。 legend off 从当前图形中清除图例。 text(x,y,s) 在图形窗口的(x, y)坐标处标注 字符串s。坐标x和y按照与所绘制图形相同 的刻度给出。 23
clf 清除当前图形窗口
13
3、同一窗口多次叠绘 在plot语句前可用hold命令保留原有图像。 hold on 使当前坐标系和图形保留 hold off 是当前坐标系和图形不保留(缺 省状态) hold 在以上两个命令中切换
14
4.1.7 曲线的色彩、线型和数据点型
plot命令绘图时,可以设置参数‘s’,设定 曲线的线段类型、颜色和数据点形等,默 认值为b-.(蓝色实线实点标记)。 plot(x,y,’s’) plot(x1,y1,’s’, x2,y2,’s’)
符号 . * + o x s (square) d (diamond) p (pentagram) h (hexagram)
17
s表示线型 类型 实线(默认) 点线 点划线 虚线
符号 : -. --
18
除了基本用法外,plot函数还可以直接对曲 线的一些属性进行设置 plot(...,'PropertyName',PropertyValue,...) 常用属性主要有四个 LineWidth 曲线宽度,默认为0.5 MarkerEdgeColor 数据点边线的颜色, 默认和曲线颜色相同 MarkerFaceColor 数据点填充颜色,默 认无填充 MarkerSize 数据点大小,默认为6
• 例8-6 绘制三维曲线 z 10sin( y) cos( x)
•
x(t ) sin t 例8-7 绘制三维曲线 y (t ) cos t z (t ) sin t cos t
29
8.3.2 三维网线图和曲面图
1、三维网线图 mesh —— 三维网线绘图函数 调用格式: mesh(x,y,z,c) —— x,y,z分别为三维空间 的坐标位置,c是指定各点用色的矩阵,省 略情况下c=z,按照高度不同用不同颜色。 mesh(z) —— z为n×m的矩阵,用元素下 标作为x、y轴自变量画图。
4
3.5
3
2.5
2 3 2 2 1 0 0 1 3
32
3、meshgrid meshgrid:网格坐标矩阵的生成函数。为了 绘制三维立体图形,我们把x方向划分为m份, y方向划分为n份,则把整个区域划分为mn 个栅格,然后根据各栅格点对应的取值,绘 制立体图形。
33
[X,Y]=meshgrid(x,y) 由向量x和y产生在x-y 平面的各网格点坐标矩阵(X,Y)。其中向量 x为1×m的行向量,向量y为1×n的行向量, 产生的网格点坐标矩阵(X,Y)的元素为坐标 对(X ij,Y ij),i=1,...,m,j=1,...,n。 例如 语句 x=[1 2 3 4]; y=[5 6 7]; [U,V]=meshgrid(x,y) 34 mesh(U,V,zeros(3,4))
y=-2:0.05:2;
[x,y]=meshgrid(x,y);
z=log(1+x.^2+2*y.^2);
surf(x,y,z) 例8-8 绘制 z
sin( y) cos( x) 的三维网格图。
36
4、其他立体网线图和曲面图 meshc() 绘制网线图同时加等高线 meshz() 绘制网线图同时加基准平面 surfc() 绘制曲面图同时加登高线 surfl() 绘制带光照色彩效果的曲面图 例 [x,y,z]=peaks(60); figure(1); meshc(x,y,z) figure(2); meshz(x,y,z) figure(3); surfc(x,y,z) figure(4); surfl(x,y,z)
x=1:pi/100:4; y=2*exp(-0.5*x).*log(2*pi*x); plot(x,y)
10
例 同时绘制曲线 y1 2e
0.5 x
sin(2 x)
* sin(x / 10)
y2 2e
x=0:pi/100:2*pi;
0.5 x
y1=2*exp(-0.5*x).*sin(2*pi*x); y2=2*exp(-0.5*x).*sin(x/10); plot (x,y1,x,y2);
30
2、三维曲面图 surf:三维曲面图的绘制函数为 surf(x,y,z,c)绘制三维曲面图,参数设置 与mesh命令相同 surf(z) 绘制三维曲面图
peaks(n) 生成n×n的一组随机测试点 例 z=peaks(50) surf(z)
31
x=[0 1 2 3 0123 0123 0 1 2 3] y=[3 3 3 3 2222 1111 0 0 0 0] z=[4 4 4 4 2222 2222 4 4 4 4] surf(x,y,z)
8.1.3 绘图的一般步骤
步骤 1 内容
数据准备(x,y,z…)
指定图像窗口和子图位置(figure, subplot, hold)
2
3
绘制曲线,设置曲线的线型、色彩、数据点型
设置坐标轴,标记网格线(axis, grid)
4
5
图形注释(title, text, xlabel, ylabel, legend)
24
例8-1 在区间 0 (1)绘制曲线
x 2 内, y 2sin(2 x) i3sin(3x)
。
(2)绘制 y 2sin(2 x) i3sin(3x) 的实部和虚部对应图形。
25
例8-2 在闭区 x ,绘制曲线。
y lg( sin x )
例8-3 绘制函数y=sinxcos2x的图形。 例8-4 在同一坐标系中画出图像。
27
二维图形的所有基本特性对三维图形全都适 用。例如
定义三维坐标轴大小
axis([xmin xmax ymin ymax zmin zmax ])
grid on(off) 绘制三维网格
text(x,y,z,‘string’) 三维图形标注
子图和多窗口也可以用到三维图形中
28
x t • 例8-5 绘制三维曲线 y(t ) sin t z (t ) cos t
11
8.1.6 多个图形绘制的方法
1、指定图形窗口 figure(n) 创建和显示序号为n的图形窗口 例 x=0:0.01:2*pi; y1=sin(x);y2=cos(x); figure(1) plot(x,y1) figure(2) plot(x,y2)
12
2、同一窗口多个子图 在plot语句前可用subplot划分子窗口。 subplot(m,n,k) 将图形窗口分割成m行n列, 并设置k所指定的子窗口为当前窗口。子窗口 按行由左至右,由上至下进行编号。缺省模 式,subplot设置图形窗口为单窗口模式,等 价于subplot (1,1,1)。
例 在区间0 x 2内,绘制曲线y=2sin(2x)
和y=3sin(3x)。
x=0:pi/100:2*pi; y1=2*sin(2*x);y2=3*sin(3*x); plot(x,y1,x,y2) %在同一个坐标系分别绘制 二维图形 title('Example.'); %给图形加上标题 xlabel('x'); %给x轴加标注 ylabel('y'); legend('3*sin(2*x)' ,'3*sin(3*x)' ); %在当前 图形上输出图例
y sin x ,y x ,y tgx
26
8.3 三维图形的绘制
8.3.1 ―三维线图”命令plot3 plot3 —— 基本的三维线图绘制函数 调用格式: plot3(x,y,z,’s’) 绘制三维曲线,s是参数 plot3(x1,y1,z1,‘s1’, x2,y2,z2,‘s2’, …) 绘制多 条三维曲线
20
8.2 图形注释
1、坐标轴的控制 可用坐标控制命令axis来控制坐标轴的特性。 表4.3列出了常用的坐标控制命令。 axis([xmin xmax ymin ymax])设定坐标系 统的最大和最小值。 axis auto 将当前图形的坐标系统恢复到自 动缺省状态。
21
2、网格线 (1)grid命令显示网格线 grid on 显示网格线 grid off 不显示网格线(默认) grid 在以上两个命令间切换。 grid Minor 显示更细密的网格线
8.1.1 图形窗口简介 8.1.2 基本的绘图命令
函数名 plot plot3 loglog semilogx semilogy plotyy 功能描述 在x轴和y轴都按线性比例绘制二维图形 在x轴、y轴和z轴都按线性比例绘制三维图形 在x轴和y轴按对数比例绘制二维图形 x轴按对数比例,y轴按线性比例绘二维图形 y轴按对数比例,x轴按线性比例绘二维图形 3 绘制双y轴图形