王国利信息科学与技术学院中山大学
http://human-robot.sysu.edu.cn
Matlab计算与仿真技术第十讲,Matlab绘图 -I
http://human-robot.sysu.edu.cn/courses
Matlab计算与仿真
Matlab绘图 -I,功能函数
- 二维图形
- 图形修饰与控制
- 三维图形
- 特殊图形绘制第十讲提纲
Matlab计算与仿真
Matlab绘图 -I
二维图形
- plot 二维曲线绘图函数基本形式
plot(x,y,’s’)
x,y 是相同类型的等长向量
s 可选用于控制图形属性原理,点?线输入,点坐标向量输出,插值曲线
Matlab计算与仿真
Matlab绘图 (续 )
采样点对绘图的影响
- 曲线实 例,y=sin(x),0<x<2*pi
>> x=[0:0.5:2*pi];
>> y=sin(x);
>> plot(x,y,‘.')
提供曲线的插值点稀疏
Matlab计算与仿真
Matlab绘图 (续 )
采样点对绘图的影响 (续 )
- 曲线实 例,y=sin(x),0<x<2*pi
>> x=[0:0.5:2*pi];
>> y=sin(x);
>> plot(x,y,‘.-')
插值曲线欠光滑
Matlab计算与仿真
Matlab绘图 (续 )
采样点对绘图的影响 (续 )
- 曲线实 例,y=sin(x),0<x<2*pi
>> x=[0:0.1:2*pi];
>> y=sin(x);
>> plot(x,y,‘.-')
提供曲线的插值点稠密
Matlab计算与仿真
Matlab绘图 (续 )
采样点对绘图的影响 (续 )
- 曲线实 例,y=sin(x),0<x<2*pi
>> x=[0:0.1:2*pi];
>> y=sin(x);
>> plot(x,y,‘.-')
插值曲线的变的光滑了
Matlab计算与仿真
Matlab绘图 (续 )
采样点对绘图的影响 (续 )
- 曲线实 例,y=sin(x),0<x<2*pi
>> x=[0:0.1:2*pi];
>> y=sin(x);
>> plot(x,y)
Matlab计算与仿真
Matlab绘图 (续 )
函数 Plot 常用的使用格式
- plot(x),缺省自变量
- plot(x,y),单条曲线
- plot(x1,y1,x2,y2,…),多条曲线
- plot(x,y,’s’),带属性修饰的曲线
- ‘s’,属性开关描述自符串变量
Matlab计算与仿真
Matlab绘图 (续 )
图形颜色、标记和线形参数表线型 基本点标记 颜色
- 实线
,虚线
-,点划线
-- 间断线
,点
o 小圆圈
x 叉子符
+ 加号
* 星号
s 方格
d 菱形
y 黄色
m 棕色
c 青色
r 红色
g 绿色
b 蓝色
w 白色
k 黑色
Matlab计算与仿真
0 2 4 6 8 10 12
0
5
10
15
20
25
30
35
Matlab绘图 (续 )
Plot 使用实例,因变量缺省
>> x=[3 5 7 6 12 24 15 33 6 9 7 2];
>> plot(x) %绘制以序号为横坐标,元素值
Matlab计算与仿真
Matlab绘图 (续 )
Plot 使用实例,多条曲线
>> x=linspace(0,7);
>> y1=sin(2*x);
>> y2=sin(x.^2);
>> y3=(sin(x)).^2;
%曲线 1:红色实线,+号显示数据点
%曲线 2:黑色点线,*号显示数据点
%曲线 3:蓝色虚线,上三角形显示数据点
>> plot(x,y1,'r+-',x,y2,'k*:',x,y3,…
'b--^')
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计算与仿真
Matlab绘图 (续 )
图形的修饰与控制函数
title —— 给图形加标题
xlable —— 给 x轴加标注
ylable —— 给 y轴加标注
text —— 在图形指定的任意位置加标注
gtext —— 利用鼠标将标注加到图形任意位置
grid on/off —— 打开 /关闭坐标网格线
legend —— 添加图例
axis —— 控制坐标轴刻度
Matlab计算与仿真
Matlab绘图 (续 )
图形修饰 /控制函数的使用
clear
t=0:0.1:10;
y1=sin(t);
y2=cos(t);
plot(t,y1,'r',t,y2,'b--');
x=[1.7*pi;1.6*pi];
y=[-0.3; 0.7];
s=['sin(t)';'cos(t)'];
Matlab计算与仿真
Matlab绘图 (续 )
图形修饰 /控制函数的使用 (续 )
text(x,y,s); %指定位置加标注
title('正弦和余弦曲线 '); %标题
legend('正弦 ','余弦 ') %添加图例注解
xlabel('时间 ') % x坐标名
ylabel('正弦 &余弦 ') % y坐标名
grid on %添加网格
axis square %将图形设置为正方形
Matlab计算与仿真
Matlab绘图 (续 )
图形修饰 /控制函数的使用 (续 )
0 2 4 6 8 10
-1
- 0,8
- 0,6
- 0,4
- 0,2
0
0,2
0,4
0,6
0,8
1
s i n ( t )
c o s ( t )
正弦和余弦曲线时间正弦
&
余弦正弦余弦
Matlab计算与仿真
Matlab绘图 (续 )
图形保持函数 hold
功能,实现异步绘图的迭加对比
clear
t=0:pi/10:2*pi;
y1=sin(t);
y2=cos(t);
y3= sin(t)-cos(t);
plot(t,y1);
hold on;
%后续图形叠加显示
plot(t,y2);
plot(t,y3);
Matlab计算与仿真
Matlab绘图 (续 )
图形保持函数 hold(续 )
0 1 2 3 4 5 6 7
- 1,5
-1
- 0,5
0
0,5
1
1,5
Matlab计算与仿真
Matlab绘图 (续 )
图形分割函数 subplot
功能,实现多个图形窗口
clear
t=0:pi/10:2*pi;
y1=sin(t);
y2=cos(t);
y3=cos(t+pi/2);
y4=cos(t+pi);
%将图形窗口分割成两行两列,图形画在第 1行第 1列的窗口
subplot(2,2,1);
plot(t,y1);
%图形画在第 1行第 2列
subplot(2,2,2);
plot(t,y2);
Matlab计算与仿真
Matlab绘图 (续 )
图形分割函数 subplot (续 )
%图形画在第 2行第 1列
subplot(2,2,3);
plot(t,y3);
%图形画在第 2行第 2列
subplot(2,2,2);
plot(t,y4);
Matlab计算与仿真
Matlab绘图 (续 )
图形保持函数 hold(续 )
0 2 4 6 8
-1
- 0,5
0
0,5
1
0 2 4 6 8
-1
- 0,5
0
0,5
1
0 2 4 6 8
-1
- 0,5
0
0,5
1
0 2 4 6 8
-1
- 0,5
0
0,5
1
Matlab计算与仿真
Matlab绘图 (续 )
3D曲线绘图函数 plot3
功能,实现三维曲线绘图使用的一般格式
plot3(x1,y1,z1,'s1',
x2,y2,z2,'s2'…)
clear
t=0:pi/50:10*pi;
plot3(t,sin(t),cos(t),'r:')
grid on
0
10
20
30
40
-1
- 0,5
0
0,5
1
-1
- 0,5
0
0,5
1
Matlab计算与仿真
Matlab绘图 (续 )
其它绘图方式
- 命令格式
plot,2D曲线绘图
plot3,3D曲线绘图
loglog:对数坐标绘图
semilogx,横对数坐标图
semilogy,纵对数坐标图
plotyy,双纵坐标图
Matlab计算与仿真
Matlab绘图 (续 )
- 矩阵变量绘图
plot(Y),每列对应一条曲线
plot(x,Y),x与 Y的相容向量绘图
plot(X,y),X与 y相容的向量同 y绘图
plot(X,Y):对应的列向量图
>> y = 1:length(peaks);
>> plot(peaks,y)
注解:按行方式绘图
Matlab计算与仿真
Matlab绘图 (续 )
- 虚数 /复数数据绘图
plot(Z) 等价于 plot(real(Z),imag(Z))
- 两纵坐标轴绘图
>> t=0:900; A=1000; a=0.005; b=0.005;
>> z1=A*exp(-a*t);
>> z2=sin(b*t);
>> [haxes,hline1,hline2] = …
plotyy(t,z1,t,z2,'semilogy','plot');
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
特殊图形绘图
- 条 图 /面积图
bar/bar3,2D/3D纵向条图
barh/bar3h,2D/3D横向 条图
>> Y = [5 2 1; 8 7 3; 9 8 6; 5 5 5; 4 3 2];
>> bar(Y)
或者
>> bar3(Y)
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
>> area(Y)
Matlab计算与仿真
Matlab绘图 (续 )
>> area(Y)
Matlab计算与仿真
Matlab绘图 (续 )
- 饼 状图
pie/pie3,2D/3D饼状图
>> X = [19.3 22.1 51.6;
34.2 70.3 82.4;
61.4 82.9 90.8;
50.5 54.9 59.1;
29.4 36.3 47.0];
>> x=sum(X);
>> explode = zeros(size(x));
>> [c,offset] = max(x);
>> explode(offset) = 1;
Matlab计算与仿真
>> pie(x,eplore)
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
- 直方 图
hist,直角坐标 直方图
rose,极坐标 直方图
>> yn = randn(10000,1);
>> hist(yn)
>> wdir = [45 90 90 45 360 335 360 270
335 270 335 335];
>> wdir = wdir * pi/180;
>> rose(wdir)
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
- 离散数据 图
stem/stem3,2D/3D离散数据图
stairs,阶梯数据 图
>> alpha=.02; beta=.5; t=0:4:200;
>> y=exp(-alpha*t).*cos(beta*t);
>> stem(t,y)
或者
>> stem(t,y,'--sr','fill')
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
>> alpha = 0.01;
>> beta = 0.5;
>> t = 0:10;
>> f = exp(-alpha*t).*sin(beta*t);
>> stairs(t,f)
>> hold on
>> plot(t,f,'--*')
>> hold off
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
- 方向 /速度 图
compass,罗盘 图
feather,羽毛 图
quiver/quiver3,2D/3D速度场图
>> wdir=[45 90 90 45 360 335 360 270
335 270 335 335];
>> knots=[6 6 8 6 3 9 6 8 9 10 14 12];
>> wdir=wdir*pi/180;
>> [x,y]=pol2cart(rdir,knots);
>> compass(x,y)
Matlab计算与仿真
Matlab绘图 (续 )
Matlab计算与仿真
Matlab绘图 (续 )
>> theta=90:-10:0;
>> r=ones(size(theta));
>> [u,v]=pol2cart(theta*pi/180,r*10);
>> feather(u,v);
Matlab计算与仿真第十一讲预告,MATLAB绘图 -II
( 2008年 05月 07日)
结束语