1 / 42

王国利

Matlab 计算与仿真技术 第十讲 : Matlab 绘图 -I http://human-robot.sysu.edu.cn/courses. 王国利. http://human-robot.sysu.edu.cn. 信息科学与技术学院. 中山大学. 第十讲提纲. Matlab 绘图 -I: 功能函数 - 二维图形 - 图形修饰与控制 - 三维图形 - 特殊图形绘制. Matlab 绘图 -I. 二维图形 - plot 二维曲线绘图函数 基本形式 plot(x,y,’s’)

isabel
Download Presentation

王国利

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Matlab计算与仿真技术 第十讲: Matlab绘图-I http://human-robot.sysu.edu.cn/courses 王国利 http://human-robot.sysu.edu.cn 信息科学与技术学院 中山大学

  2. 第十讲提纲 • Matlab绘图-I: 功能函数 - 二维图形 - 图形修饰与控制 - 三维图形 - 特殊图形绘制

  3. Matlab绘图-I • 二维图形 - plot 二维曲线绘图函数 基本形式 plot(x,y,’s’) x,y是相同类型的等长向量s可选用于控制图形属性 原理: 点线 输入: 点坐标向量 输出: 插值曲线

  4. Matlab绘图 (续) • 采样点对绘图的影响 - 曲线实例:y=sin(x), 0<x<2*pi >> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,‘.') 提供曲线的插值点稀疏

  5. Matlab绘图 (续) • 采样点对绘图的影响(续) - 曲线实例:y=sin(x), 0<x<2*pi >> x=[0:0.5:2*pi]; >> y=sin(x); >> plot(x,y,‘.-') 插值曲线 欠光滑

  6. Matlab绘图 (续) • 采样点对绘图的影响(续) - 曲线实例:y=sin(x), 0<x<2*pi >> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y,‘.-') 提供曲线的插值点稠密

  7. Matlab绘图 (续) • 采样点对绘图的影响(续) - 曲线实例:y=sin(x), 0<x<2*pi >> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y,‘.-') 插值曲线的变的光滑了

  8. Matlab绘图 (续) • 采样点对绘图的影响(续) - 曲线实例:y=sin(x), 0<x<2*pi >> x=[0:0.1:2*pi]; >> y=sin(x); >> plot(x,y)

  9. Matlab绘图 (续) • 函数 Plot常用的使用格式 - plot(x): 缺省自变量 - plot(x,y): 单条曲线 - plot(x1,y1,x2,y2,…): 多条曲线 - plot(x,y,’s’): 带属性修饰的曲线 - ‘s’ : 属性开关描述自符串变量

  10. Matlab绘图 (续) • 图形颜色、标记和线形参数表

  11. Matlab绘图 (续) • Plot 使用实例: 因变量缺省 >> x=[3 5 7 6 12 24 15 33 6 9 7 2]; >> plot(x) %绘制以序号为横坐标,元素值

  12. 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--^')

  13. Matlab绘图 (续) • 图形的修饰与控制函数 title —— 给图形加标题 xlable —— 给x轴加标注 ylable —— 给y轴加标注 text —— 在图形指定的任意位置加标注 gtext —— 利用鼠标将标注加到图形任意位置 grid on/off —— 打开/关闭坐标网格线 legend —— 添加图例 axis —— 控制坐标轴刻度

  14. 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)'];

  15. Matlab绘图 (续) • 图形修饰/控制函数的使用(续) text(x, y, s); %指定位置加标注 title('正弦和余弦曲线'); %标题 legend('正弦','余弦') %添加图例注解 xlabel('时间') %x坐标名 ylabel('正弦&余弦') %y坐标名 grid on %添加网格 axis square %将图形设置为正方形

  16. Matlab绘图 (续) • 图形修饰/控制函数的使用(续)

  17. 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);

  18. Matlab绘图 (续) • 图形保持函数hold(续)

  19. 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);

  20. Matlab绘图 (续) • 图形分割函数 subplot (续) %图形画在第2行第1列 subplot(2,2,3); plot(t,y3); %图形画在第2行第2列 subplot(2,2,2); plot(t,y4);

  21. Matlab绘图 (续) • 图形保持函数hold(续)

  22. 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

  23. Matlab绘图 (续) • 其它绘图方式 - 命令格式 plot: 2D曲线绘图 plot3: 3D曲线绘图 loglog:对数坐标绘图 semilogx: 横对数坐标图 semilogy: 纵对数坐标图 plotyy: 双纵坐标图

  24. Matlab绘图 (续) - 矩阵变量绘图 plot(Y):每列对应一条曲线 plot(x,Y): x与Y的相容向量绘图 plot(X,y):X与y相容的向量同y绘图 plot(X,Y):对应的列向量图 >> y = 1:length(peaks); >> plot(peaks,y) 注解:按行方式绘图

  25. 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');

  26. Matlab绘图 (续)

  27. 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)

  28. Matlab绘图 (续)

  29. Matlab绘图 (续) >> area(Y)

  30. Matlab绘图 (续) >> area(Y)

  31. 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;

  32. Matlab绘图 (续) >> pie(x,eplore)

  33. 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)

  34. Matlab绘图(续)

  35. 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')

  36. Matlab绘图 (续)

  37. 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

  38. Matlab绘图 (续)

  39. 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)

  40. Matlab绘图 (续)

  41. Matlab绘图 (续) >> theta=90:-10:0; >> r=ones(size(theta)); >> [u,v]=pol2cart(theta*pi/180,r*10); >> feather(u,v);

  42. 结束语 第十一讲预告: MATLAB绘图-II (2008年05月07日)

More Related