Matlab绘图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
例 在区间 [ , ] 上,绘制函数y=sinx图形
x=-pi:pi/50:pi;
y=sin(x);
plot(x,y)
grid on
例 画出椭圆 x2 y2 1 的曲线图 25 81
t=0:pi/50:2*pi;
x=5*cos(t);
y=9*sin(t);
plot(x,y)
grid on
7
(4) plot(x,y,’s’):以x为横坐标,y为纵坐标绘制折线, 其中s用于设置图形的显示属性.
线型或颜色 含义 数据点形状 含义
-
实线
o
圆
:
点线
x
x符号
-.
点划线
+
+号
--
虚线
*
星号
y
黄色
s
方形
m
紫色
d
菱形
c
青色
v
下三角
r
红色
^
上三角
g
绿色
<
左三角
b
蓝色
wenku.baidu.com
>
右三角
w
白色
p
正五角星
k
黑色
h
正六角形
9
1.2 对数图形函数
•loglog:绘制双轴对数图形 •semilogx:绘制单轴对数图形,横轴采用对数 坐标,纵轴采用线性坐标 •semilogy:绘制单轴对数图形,横轴采用线性 坐标,纵轴采用对数坐标 •以上三个函数调用方法同plot
例 绘制函数 y ex 的轴对数图形
x=1:10; y=exp(x); loglog(x,y) grid on
17
(8) legend:图例标注 • legend(‘String1’, ‘String2’, ‘String3’,…): 当在一幅图 中出现多条曲线时,结合在绘制时的不同线性与 颜色等属性,加以说明文字
18
例 在同一坐标系中画出两个函数y=cos2x, y=sin x
sin6 x的图形,自变量范围为0≤ x ≤ ,函数y=cos2x
横坐标,元素的数值为纵坐标绘制折线 • 若y是复数向量,则以向量元素的实部为横坐标,
虚部为纵坐标绘制折线 • 若y是实数矩阵, Matlab为矩阵的每一列画出一
条折线,每列的绘制同第一种情况 • 若y是复数矩阵, Matlab为矩阵的每一列画出一
条折线,每列的绘制同第二种情况
2
例 (1) y=rand(50,1); (2) y=[2,3,5,6;8,5,7,4;4,5,6,7]; (3) y=[1+i 2+4i 3+9i 4+16i 5+25i]; 演示 plot(y)
• Figure命令可以自己创建图形窗口
• 其调用格式为
figure
figure(n)
演示: x=0:2*pi/50:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1)
figure
plot(x,y2)
grid on
11
(2) grid:控制分隔线 • grid: 在grid on与grid off之间进行切换 • grid on: 在图中使用分割线 • grid off: 在图中不使用分割线
y cos x, y sin x, 0 x 2
x=0:pi/50:2*pi; y1=cos(x); y2=sin(x); plot(x,y1,'b*') hold on plot(x,y2,'r.') grid on
13
(4) axis:坐标轴的控制 • axis([xmin xmax ymin ymax]): 设定二维图形坐标 轴的范围
用红色星号,函数y=sin x sin6 x用蓝色实线,并加图 名、坐标轴、图形、图例标注.
x=0:pi/50:pi; y1=cos(2*x);y2=sin(x).*sin(6*x); plot(x,y1,'r*',x,y2,'b-');grid on; title(‘曲线y1=cos2x与y2=sinxsin6x') xlabel(‘x轴');ylabel('y轴'); gtext('y1=cos2x');gtext('y2=sinxsin6x'); legend('y1=cos2x','y2=sinxsin6x');
•对于显函数y=f(x), ezplot函数的调用格式为 ezplot(f, [xmin xmax])
•对于隐函数f(x,y)=0, ezplot函数的调用格式为 ezplot(f, [xmin xmax] , [ymin ymax])
21
1.5 自适应绘图fplot
fplot函数特点:绘图的数据点是自适应产生的. –在函数平坦处,所取数据点比较稀疏;在函 数变化剧烈处,将自动取较密的数据点
调用格式
fplot(fun,limits,tol,linespec) • fun:函数名,可以是MATLAB已有函数、自定 义的M函数或字符串定义的函数 •limits: 表示绘制图形的坐标轴取值范围,有两 种方式:[xmin xmax]和[xmin xmax ymin ymax] •tol:相对误差,默认值为2e-3 •linespec:表示图形的线型、颜色和数据点等设 置
8
•linewidth: 指定线条的宽度, 取值为整数(单位 为像素点)
(5) plot(x1,y1,’s1’,x2,y2,’s2’,…):在同一图形窗口中 画出多条带属性设置的折线.
例 演示带有显示属性的正余弦函数图形
x=0:0.1*pi:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'--k',x,y2,'-.rd') grid on
15
(5) title:图名标注 • title(‘String’): 在图形的顶端加注文字作为图名 • title(‘String’, ‘PropertyName’, Propertyvalue,…):在 图形的顶端加注带属性的文字作为图名
(6) 坐标轴标注 • xlabel(‘String’), ylabel(‘String’), zlabel(‘String’) :在 当前图形的x轴、y轴、z轴旁边加入文字内容 • xlabel(‘String’, ‘PropertyName’, Propertyvalue,…) • ylabel(‘String’, ‘PropertyName’, Propertyvalue,…) • zlabel(‘String’, ‘PropertyName’, Propertyvalue,…): 在当前图形的x轴、y轴、z轴旁边加入带属性的 文字内容
例 在同一窗口中绘制以下三个函数的图形
y 2x, y cos x, y sin x 其中自变量范围为 3 x 3
x=-3:0.1:3; y1=2*x;y2=cos(x);y3=sin(x); plot(x,y1,x,y2,x,y3) grid on
x=-3:0.1:3; y=[2*x;cos(x);sin(x)]; plot(x,y) grid on
3
(2) plot(x,y): 画一条或多条折线图,其中x和y是向量或 矩阵. • 若x和y都是实数向量,Matlab会以x为横坐标,y 为纵坐标绘制折线,x和y必须维数相同 • 若x和y都是m×n矩阵,在同一图形窗口中绘制n 条不同颜色的折线,每列的画法同第一种情况 • 若x是向量,y是矩阵,并且向量的维数等于矩阵 的行数(或列数),则以x为横坐标,分别以y的 每列(或每行)为纵坐标绘制多条折线 • 若x是矩阵,y是向量,则类似于第三种情况 • 上述几种情况中,若出现复数,则不考虑复数的 虚数部分
• axis([xmin xmax ymin ymax zmin zmax]): 设定三维 图形坐标轴的范围
• axis:在axis on与axis off之间进行切换 • axis on: 恢复消隐的坐标轴 • axis off: 使坐标轴消隐 • axis ij: 坐标原点设置在图形窗口的左上角,坐标
(3) hold:图形的重叠绘制 • hold: 在hold on与hold off之间进行切换 • hold on: 保留当前图形和它的轴,使此后图形 叠放在当前图形上 • hold off: 返回MATLAB的默认状态,从后图形指 令运作将抹掉当前窗口中的旧图形,然后画上新 图形
12
例 利用hold命令,在同一坐标系中画出以下两条 曲线
22
例 分别利用命令plot和fplot绘制曲线y=cos(1/x) 在区间[-1, 1]的图像,并作比较
close all; x=-1:0.1:1; y=cos(1./x); plot(x,y);
figure fplot('cos(1./x)',[-1, 1]);
23
1.6 隐函数作图ezplot ezplot可用于显函数、隐函数和参数方程作图
20
例 演示subplot命令对图形窗口的分割
x=-2:0.2:2; y1=x+sin(x);y2=sin(x)./x;y3=x.^2; subplot(2,2,1); plot(x,y1,'m.'); grid on; title('y=x+sinx'); subplot(2,2,2); plot(x,y1,'rp'); grid on; title('y=sinx/x'); subplot('position',[0.2,0.05,0.6,0.45]); plot(x,y3); grid on; text(0.3,2.3,'y=x^2');
x=1:10; y=exp(x); simlogx(x,y) grid on
x=1:10; y=exp(x); simlogy(x,y) grid on
10
1.3 基本绘图控制参数
(1) figure: 所有MATLAB图形输出的专用窗口.
• 当MATLAB没有打开图形窗口时,如果执行了一
条绘图命令,该命令将自动创建一个图形窗口
19
1.4 一个图形窗口多个子图的绘制
subplot命令将窗口分为几个区域,再在每个小区 域中画图形,调用格式如下:
•subplot(m,n,i):把图形窗口分为m×n个子图, 并在第i个子图中画图 •subplot(m,n,i,’replace’) :若在绘制图形的时候 已经定义了坐标轴,该命令将删除原来的坐标 轴,并创建一个新的坐标轴系统 •subplot(’position’,[left bottom width height]) : 在指定位置[left bottom width height]创建新的坐 标系,并且各个参数在0到1之间取值
轴i垂直向下,j水平向右 • axis xy: 设定为笛卡尔坐标系 • axis equal: 使坐标轴在三个方向上刻度增量相同 • axis square: 使坐标轴在三个方向上长度相同 • axis tight: 将数据范围设置为刻度
14
• axis normal: 默认的矩阵坐标系 • axis image: 等长刻度,坐标框紧贴数据范围 • axis fill: 使坐标充满整个绘图区
5
例 在同一窗口中绘制以下两条曲线的图形
y sin(x 3), y esin x
x=-2*pi:pi/50:2*pi; y=[sin(x+3); exp(sin(x))]; plot(x,y) grid on
6
(3) plot(x1,y1,x2,y2,x3,y3, …): 在同一图形窗口中 画出多条折线.
16
(7) text:图形标注 • text(x,y,‘String’): 适用于二维图形,在点(x,y)上加 注文字String • text(x,y,z,‘String’): 适用于三维图形,在点(x,y,z)上 加注文字String • text(x,y,z,‘String’ , ‘PropertyName’, Propertyvalue,…): 在指定位置加注带属性的文字String • gtext( ‘String’): 在鼠标指定位置加注文字String • 使用gtext命令后,会在当前图形上出现一个 十字叉,等待用户选定位置进行标注. 移动鼠 标到所需位置按下鼠标左键,MATLAB就在选 定位置标上文字
五、图形绘制
MATLAB 提供了强大的图形处理 功能,可以绘制二维图形、三维图形、 甚至四维表现图
1
1. 二维图形
1.1 plot是Matlab中最简单最常用的二维图形绘制命令, 其调用格式有 (1) plot(y): 画一条或多条折线图,其中y是数值向量或
数值矩阵. • 若y是实数向量,Matlab会以y向量元素的下标为
例 在区间 [ , ] 上,绘制函数y=sinx图形
x=-pi:pi/50:pi;
y=sin(x);
plot(x,y)
grid on
例 画出椭圆 x2 y2 1 的曲线图 25 81
t=0:pi/50:2*pi;
x=5*cos(t);
y=9*sin(t);
plot(x,y)
grid on
7
(4) plot(x,y,’s’):以x为横坐标,y为纵坐标绘制折线, 其中s用于设置图形的显示属性.
线型或颜色 含义 数据点形状 含义
-
实线
o
圆
:
点线
x
x符号
-.
点划线
+
+号
--
虚线
*
星号
y
黄色
s
方形
m
紫色
d
菱形
c
青色
v
下三角
r
红色
^
上三角
g
绿色
<
左三角
b
蓝色
wenku.baidu.com
>
右三角
w
白色
p
正五角星
k
黑色
h
正六角形
9
1.2 对数图形函数
•loglog:绘制双轴对数图形 •semilogx:绘制单轴对数图形,横轴采用对数 坐标,纵轴采用线性坐标 •semilogy:绘制单轴对数图形,横轴采用线性 坐标,纵轴采用对数坐标 •以上三个函数调用方法同plot
例 绘制函数 y ex 的轴对数图形
x=1:10; y=exp(x); loglog(x,y) grid on
17
(8) legend:图例标注 • legend(‘String1’, ‘String2’, ‘String3’,…): 当在一幅图 中出现多条曲线时,结合在绘制时的不同线性与 颜色等属性,加以说明文字
18
例 在同一坐标系中画出两个函数y=cos2x, y=sin x
sin6 x的图形,自变量范围为0≤ x ≤ ,函数y=cos2x
横坐标,元素的数值为纵坐标绘制折线 • 若y是复数向量,则以向量元素的实部为横坐标,
虚部为纵坐标绘制折线 • 若y是实数矩阵, Matlab为矩阵的每一列画出一
条折线,每列的绘制同第一种情况 • 若y是复数矩阵, Matlab为矩阵的每一列画出一
条折线,每列的绘制同第二种情况
2
例 (1) y=rand(50,1); (2) y=[2,3,5,6;8,5,7,4;4,5,6,7]; (3) y=[1+i 2+4i 3+9i 4+16i 5+25i]; 演示 plot(y)
• Figure命令可以自己创建图形窗口
• 其调用格式为
figure
figure(n)
演示: x=0:2*pi/50:2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1)
figure
plot(x,y2)
grid on
11
(2) grid:控制分隔线 • grid: 在grid on与grid off之间进行切换 • grid on: 在图中使用分割线 • grid off: 在图中不使用分割线
y cos x, y sin x, 0 x 2
x=0:pi/50:2*pi; y1=cos(x); y2=sin(x); plot(x,y1,'b*') hold on plot(x,y2,'r.') grid on
13
(4) axis:坐标轴的控制 • axis([xmin xmax ymin ymax]): 设定二维图形坐标 轴的范围
用红色星号,函数y=sin x sin6 x用蓝色实线,并加图 名、坐标轴、图形、图例标注.
x=0:pi/50:pi; y1=cos(2*x);y2=sin(x).*sin(6*x); plot(x,y1,'r*',x,y2,'b-');grid on; title(‘曲线y1=cos2x与y2=sinxsin6x') xlabel(‘x轴');ylabel('y轴'); gtext('y1=cos2x');gtext('y2=sinxsin6x'); legend('y1=cos2x','y2=sinxsin6x');
•对于显函数y=f(x), ezplot函数的调用格式为 ezplot(f, [xmin xmax])
•对于隐函数f(x,y)=0, ezplot函数的调用格式为 ezplot(f, [xmin xmax] , [ymin ymax])
21
1.5 自适应绘图fplot
fplot函数特点:绘图的数据点是自适应产生的. –在函数平坦处,所取数据点比较稀疏;在函 数变化剧烈处,将自动取较密的数据点
调用格式
fplot(fun,limits,tol,linespec) • fun:函数名,可以是MATLAB已有函数、自定 义的M函数或字符串定义的函数 •limits: 表示绘制图形的坐标轴取值范围,有两 种方式:[xmin xmax]和[xmin xmax ymin ymax] •tol:相对误差,默认值为2e-3 •linespec:表示图形的线型、颜色和数据点等设 置
8
•linewidth: 指定线条的宽度, 取值为整数(单位 为像素点)
(5) plot(x1,y1,’s1’,x2,y2,’s2’,…):在同一图形窗口中 画出多条带属性设置的折线.
例 演示带有显示属性的正余弦函数图形
x=0:0.1*pi:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,'--k',x,y2,'-.rd') grid on
15
(5) title:图名标注 • title(‘String’): 在图形的顶端加注文字作为图名 • title(‘String’, ‘PropertyName’, Propertyvalue,…):在 图形的顶端加注带属性的文字作为图名
(6) 坐标轴标注 • xlabel(‘String’), ylabel(‘String’), zlabel(‘String’) :在 当前图形的x轴、y轴、z轴旁边加入文字内容 • xlabel(‘String’, ‘PropertyName’, Propertyvalue,…) • ylabel(‘String’, ‘PropertyName’, Propertyvalue,…) • zlabel(‘String’, ‘PropertyName’, Propertyvalue,…): 在当前图形的x轴、y轴、z轴旁边加入带属性的 文字内容
例 在同一窗口中绘制以下三个函数的图形
y 2x, y cos x, y sin x 其中自变量范围为 3 x 3
x=-3:0.1:3; y1=2*x;y2=cos(x);y3=sin(x); plot(x,y1,x,y2,x,y3) grid on
x=-3:0.1:3; y=[2*x;cos(x);sin(x)]; plot(x,y) grid on
3
(2) plot(x,y): 画一条或多条折线图,其中x和y是向量或 矩阵. • 若x和y都是实数向量,Matlab会以x为横坐标,y 为纵坐标绘制折线,x和y必须维数相同 • 若x和y都是m×n矩阵,在同一图形窗口中绘制n 条不同颜色的折线,每列的画法同第一种情况 • 若x是向量,y是矩阵,并且向量的维数等于矩阵 的行数(或列数),则以x为横坐标,分别以y的 每列(或每行)为纵坐标绘制多条折线 • 若x是矩阵,y是向量,则类似于第三种情况 • 上述几种情况中,若出现复数,则不考虑复数的 虚数部分
• axis([xmin xmax ymin ymax zmin zmax]): 设定三维 图形坐标轴的范围
• axis:在axis on与axis off之间进行切换 • axis on: 恢复消隐的坐标轴 • axis off: 使坐标轴消隐 • axis ij: 坐标原点设置在图形窗口的左上角,坐标
(3) hold:图形的重叠绘制 • hold: 在hold on与hold off之间进行切换 • hold on: 保留当前图形和它的轴,使此后图形 叠放在当前图形上 • hold off: 返回MATLAB的默认状态,从后图形指 令运作将抹掉当前窗口中的旧图形,然后画上新 图形
12
例 利用hold命令,在同一坐标系中画出以下两条 曲线
22
例 分别利用命令plot和fplot绘制曲线y=cos(1/x) 在区间[-1, 1]的图像,并作比较
close all; x=-1:0.1:1; y=cos(1./x); plot(x,y);
figure fplot('cos(1./x)',[-1, 1]);
23
1.6 隐函数作图ezplot ezplot可用于显函数、隐函数和参数方程作图
20
例 演示subplot命令对图形窗口的分割
x=-2:0.2:2; y1=x+sin(x);y2=sin(x)./x;y3=x.^2; subplot(2,2,1); plot(x,y1,'m.'); grid on; title('y=x+sinx'); subplot(2,2,2); plot(x,y1,'rp'); grid on; title('y=sinx/x'); subplot('position',[0.2,0.05,0.6,0.45]); plot(x,y3); grid on; text(0.3,2.3,'y=x^2');
x=1:10; y=exp(x); simlogx(x,y) grid on
x=1:10; y=exp(x); simlogy(x,y) grid on
10
1.3 基本绘图控制参数
(1) figure: 所有MATLAB图形输出的专用窗口.
• 当MATLAB没有打开图形窗口时,如果执行了一
条绘图命令,该命令将自动创建一个图形窗口
19
1.4 一个图形窗口多个子图的绘制
subplot命令将窗口分为几个区域,再在每个小区 域中画图形,调用格式如下:
•subplot(m,n,i):把图形窗口分为m×n个子图, 并在第i个子图中画图 •subplot(m,n,i,’replace’) :若在绘制图形的时候 已经定义了坐标轴,该命令将删除原来的坐标 轴,并创建一个新的坐标轴系统 •subplot(’position’,[left bottom width height]) : 在指定位置[left bottom width height]创建新的坐 标系,并且各个参数在0到1之间取值
轴i垂直向下,j水平向右 • axis xy: 设定为笛卡尔坐标系 • axis equal: 使坐标轴在三个方向上刻度增量相同 • axis square: 使坐标轴在三个方向上长度相同 • axis tight: 将数据范围设置为刻度
14
• axis normal: 默认的矩阵坐标系 • axis image: 等长刻度,坐标框紧贴数据范围 • axis fill: 使坐标充满整个绘图区
5
例 在同一窗口中绘制以下两条曲线的图形
y sin(x 3), y esin x
x=-2*pi:pi/50:2*pi; y=[sin(x+3); exp(sin(x))]; plot(x,y) grid on
6
(3) plot(x1,y1,x2,y2,x3,y3, …): 在同一图形窗口中 画出多条折线.
16
(7) text:图形标注 • text(x,y,‘String’): 适用于二维图形,在点(x,y)上加 注文字String • text(x,y,z,‘String’): 适用于三维图形,在点(x,y,z)上 加注文字String • text(x,y,z,‘String’ , ‘PropertyName’, Propertyvalue,…): 在指定位置加注带属性的文字String • gtext( ‘String’): 在鼠标指定位置加注文字String • 使用gtext命令后,会在当前图形上出现一个 十字叉,等待用户选定位置进行标注. 移动鼠 标到所需位置按下鼠标左键,MATLAB就在选 定位置标上文字
五、图形绘制
MATLAB 提供了强大的图形处理 功能,可以绘制二维图形、三维图形、 甚至四维表现图
1
1. 二维图形
1.1 plot是Matlab中最简单最常用的二维图形绘制命令, 其调用格式有 (1) plot(y): 画一条或多条折线图,其中y是数值向量或
数值矩阵. • 若y是实数向量,Matlab会以y向量元素的下标为