1 / 38

主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424 电话: 665929 email : bighandjzd@126

多媒体信息处理系统设计. MATLAB 绘图 http://www2.nbu.edu.cn/jiangzhidi/mediasystem http://bighand.zxq.net/mediasystem. 主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424 电话: 665929 email : bighandjzd@126.com. 基本绘图. plot----- 基本二维绘图函数. 格式 1 : plot(y).

gino
Télécharger la présentation

主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424 电话: 665929 email : bighandjzd@126

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绘图http://www2.nbu.edu.cn/jiangzhidi/mediasystem http://bighand.zxq.net/mediasystem 主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼424 电话:665929 email:bighandjzd@126.com

  2. 基本绘图 • plot-----基本二维绘图函数 • 格式1: plot(y) • y为复数矩阵,则相当于plot(real(y),imag(y)) • 格式2: plot(x,y) • 如果y为多行或多列矩阵,则绘制多条曲线 • 格式3: plot(x1, y1,x2,y2,…) • 绘制多条曲线在一个图中

  3. 格式4: plot(y,’s’) • plot(x,y,’s’) • plot(x1,y1,’s1’,x2,y2,’s2’…) • 颜色:b(默认:蓝)、g(绿)、r(红)、c(青)、m(洋红)、y(黄)、k(黑) • 线型:-(默认:实线)、:(虚线)、-.(点划线)、--(划线) • 标记:(默认:无标记)、.(点)、o(圈)、x(叉)、+(十字)、*(星)、s(方块)、d(菱形)、v(下三角)、^(上三角)、<(左三角)、>(右三角)、p(五角形)、h(六角形) s为一字符串,用于设置绘图颜色和线型

  4. plotyy---- 双坐标绘图 • 格式:plotyy(x1,y1,x2,y2) 功能:将y1的坐标标在左边,y2标在右边, x1,x2 共用横坐标。 例如:plotyy(t,y,t1,y1) • loglog / semilogx /semilogy---对数坐标绘图 功能:与plot用法相同,区别为坐标轴为对数 Loglog( ):X-Y轴均为对数 Semilogx():X轴为对数(半对数) Semilogy():Y轴为对数(半对数) 例如:yl= (1:1:100);semilogy(yl);

  5. polar----极坐标 格式:polar(θ,r) 功能:以θ为角度,r为半径绘图。 例:x=(0:pi/100:2*pi);yp=abs(sin(x));polar(x,yp) • 多曲线绘图控制 图形保持: hold on(off) • 子图控制: subplot(m,n,p) • 将窗口分成m(行)*n(列)个子图, 并指定在第p个子图中绘图 窗口控制: fugure(n) • 打开一个新窗口用于当前绘图,n为该窗口的句柄(唯一标识),用于在多个窗口中绘图。

  6. 图形控制 title(‘s’) —— 给图形加标题 例如: plot(t,y); title(‘sine wave’) xlabel (‘s’)—— 给x轴加标注 例如:xlabel(‘t(s)’) ylabel (‘s’)—— 给y轴加标注 例如:ylabel(‘V(mv)’) text (x,y,’s’)—在图形指定位置(x,y)加标注 例如:text(0.5,0.8,’t=0.5s v=0.8’) legend (‘s1’,’s2’,…)—— 添加图例 例如:plot(t,y,t1,y1);legend(‘sine’,’cosine’)

  7. grid on(off) — 打开、关闭坐标网格线 例如:grid off zoom on(off) ---允许放大/缩小 axis —— 控制坐标轴的刻度 ■ axis([xmin,xmax,ymin,ymax]) 设定坐标轴的最大最小值 例如:plot(t,y);axis([-1 2 –2 2]) ■ axis(‘equal’)将两轴设为相等。 - axis equal/square ■ axis on(off) 显示或关闭坐标轴

  8. 例.同一坐标系下画出的sinx和cosx的函数图形,如何作?例.同一坐标系下画出的sinx和cosx的函数图形,如何作? x=linspace(0,2*pi,30); y=[sin(x);cos(x)]; plot(x,y); grid; xlabel('x'); ylabel('y'); title('Sine and COsine Curves'); text(3*pi/4,sin(3*pi/4),'\leftarrowsinx'); text(3*pi/2,cos(3*pi/2),'cosx\rightarrow',... 'HorizontalAlignment','right'); 这些命令行可以形成一个M文件ex1.m

  9. 特殊二维绘图 二维特殊绘图函数使用方法基本同plot 1、stem ––––绘制火柴杆图 例如:stem(t,y) 2、bar–––绘制直方图 例如:bar(t,y) 3、stairs ––––绘制阶梯图 例如:stairs (t,y,’r’)

  10. 4、area ––––区域图 例如:x=ones(1,5);area(x) 注意同 bar 的区别 5、 pie ––––饼图 例如:x=[1 2 3 2 1 1 ]; y=[0 0 1 0 0 0]; pie(x,y) 还有其它特殊函数。。。 符号作图:ezplot(‘f(x)’,[a,b])

  11. 基本三维绘图 • plot3----基本三维曲线 (plot_example_4.m) • 格式1:plot3(x,y,z) • 格式2:plot3(x1,y1,z1,x2,y2,z2…) • 格式3:plot3(x,y,z,’s’) plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’) s用于设置绘图颜色和线型,字符串意义同plot。

  12. mesh ------三维网格图 • 格式1:mesh(z) 功能:z为二维矩阵,绘图时, 以元素下标( x = 1:n ,y = 1:m.)作为X-Y坐标, 元素值作为Z坐标, 将各点连成网格。颜色与高度成比例。 例如:♥ z=eye(10);mesh(z); ♥ z=peaks(20)(测试矩阵); mesh(z);

  13. 可以使用meshgrid()函数产生网格坐标: 格式:[X,Y]=meshgrid(x,y) x,y为向量, X的行为x的拷贝,Y的列是y的拷贝,X,Y同维 例如:[xx,yy]=meshgrid([ 1 2 3 4],[1 2 3 4]) 例如: [x,y]=meshgrid((-5:5),(-5:5)); z=x.^2+y.^2,mesh(z) 例如:画一个立体的抽样函数图(sin(r)/r) [x2,y2]=meshgrid((-10:0.5:10),(-10:0.5:10)); r=sqrt(x2.*x2+y2.*y2); z=sin(r)./r; mesh(z)

  14. 格式2:mesh(x,y,z) 功能:x,y,z 为三个矩阵,以各元素值为三维坐标点绘图,并连成网格。 例如: 画一四边形, (0,0,0),(1,0,0),(0,0.5,1),(1,0.5,1) xx=[0 1;0 1] ;yy=[0 0 ; 0.5 0.5]; zz=[ 0 0 ; 1 1];mesh(xx,yy,zz) 例如:画一个球体 [xx,yy,zz]=sphere(30);mesh(xz,yz,zz) 例如:画一个测试曲面 [x,y,z]=peaks(30);mesh(x,y,z)

  15. 格式3:meshc(x,y,z) 功能:在网格下画一等值线图 例如:meshc(x,y,z) • 格式4:meshz(x,y,z) 功能:在网格下画一窗帘(垂直线) 例如:meshz(x,y,z)

  16. (plot_example_4.m) • surf-------三维曲面图 格式1:surf(z) 或 surf(x,y,z) 基本同mesh,只是将网格着色变为小曲面 例如: surf(x,y,z) 格式2:surfc(z) surfc(x,y,z) 带等高线的曲面图 例如:surfc(x,y,z)

  17. 三维图形的颜色修饰 颜色是三维图形中的第四维,如果不指定,则以Z轴值为准 1、色图函数:colormap(map) 通过系统预置的色图,可改变显示的颜色 例如:surf(x,y,z); colormap(hot) colormap(spring)

  18. 2、显示颜色条:colorbar 例如:surf(x,y,z);colorbar 3、颜色的浓淡处理:shading 用于改变mesh或surf的小网格或曲面的着色。有三种方法: ①shading flat:去掉黑色线条,根据小方块的值确 定颜色(平滑) ②shading interp:根据小方块四角的值差补过度点的值确定颜色(内插) ③shading faceted(缺省)(小平面)

  19. 图形控制 二维图形控制命令,大都适合三维图形控制 1、view(方位角,俯仰角) -----改变视角 缺省为(-37.5, 30), 例如:view(0,0) (看不见Y轴) 2、rotate3 on(off) ------允许旋转 3、hidden on(off) ----隐藏或透视被遮挡的地方

  20. 特殊三维绘图 1、stem3(x,y,z) ----- 三维火柴杆图: 例如:stem3(x,y,z) 2、bar3(z) ------ 三维条形图(同二维) 例如:bar3([1 2 3 2 1]) 3、pie3 (x,p)------ 三维饼图(同二维): 例如:pie3([1 2 3 2 1 1 ],[0 0 1 0 0 0]) 还有其它特殊函数。。。

  21. 例 等高线 作出由MATLAB的函数peaks产生的二元函数的曲面及其等值线图。 [X,Y,Z]=peaks(30); surf(X,Y,Z); figure(2); contour(X,Y,Z,16); figure(3); contour3(X,Y,Z,16);

  22. 父对象 子对象 根屏幕  窗口1 窗口2 窗口n 界面控制 界面菜单 轴 线 面 字 块 像 高级绘图控制 图形对象的基本要素以根屏幕为先导 句柄图形: 可以随意改变Matlab生成图形的方式 图形对象之间的关系为父代与子代的关系

  23. 创建图形对象的底层函数 • figure创建图形窗口 调用格式: h=figure(n) n为窗口序号 figure (property1,value1, property2,value2, … ) 常用的属性有: menubar, name, numbertitle, resize, position, unite, color, pointer, keypressfcn, WindowButtonDownFcn, WindowButtonMotionFcn,

  24. axes  创建轴对象 h=axes (property1,value1, property2,value2, … ) 常用的属性有: box, gridlinestyle, position, unite, color, title

  25. line  创建线对象 h=line(x,y), 或line(x,y,z), 常用的属性有:color, linestyle, linewidth, marker, markersize • patch  创建块对象 h=patch(x,y,z,c) x,y,z定义多边形,c确定填充颜色。 • surface  创建面对象 h=surface(x,y,z, property1,value1, property2,value2, … ) x,y,z三维曲面坐标, 常用的属性有:edgecolor, facecolor, linestyle, linewidth, marker, markersize

  26. image  显示图象 h=image(x); x为图像矩阵 • text  标注文字 h=text(x,y,z, ’文字’, property1,value1, property2,value2, … ) 常用的属性有:color, string, interpreter, fontsize, rotation 每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。

  27. 什么是句柄? 句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。 • 各图形对象的句柄数据格式: 根屏幕: 0 图形窗口: 整数,表示图形窗口数 当前坐标轴的句柄:gca 当前图形窗的句柄:gcf 其它对象的句柄: 对应的符点数

  28. 图形对象属性的获得与设置 • 句柄属性的设置与修改 • get: 获得句柄图形对象的属性和返回某些对象的 句柄值 • set: 改变图形对象的属性 • findobj: 根据对象特性获取句柄

  29. 操作格式: get(h)或get(h, '属性名') : 查阅某对象的属性或子(children)父(parent)代的句柄值 set(h, '属性名', '属性值'):设置或修改某对象的属性值 findobj (h)或findobj(h, '属性名', '属性值'):获取对象子对象的句柄值, 或获取指定属性值的对象的句柄.

  30. 例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为1/2高度,如何用句柄实现。例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为1/2高度,如何用句柄实现。 x=0:2*pi/180:2*pi; y1=sin(x);y2=cos(x); plot(x,y1,x,y2,x,zeros(size(x)),':')

  31. 首先查询各对象的属性 h=get(gcf,'children') %获得图形窗的句柄 hh=get(gca,'children') %获得坐标轴的句柄 • 修改属性 y11=get(hh(2),'ydata'); y22=y11/2; set(hh(2),'ydata',y22); set(hh(3),'linestyle',':','linewidth',0.5);

  32. 句柄属性的缺省值操作 • 通过父代对象,设置缺省对象属性来实现的。 • 父代句柄属性中设置省缺值后,所有子代对象均可以继承该属性的省缺值。 • 属性缺省值设置有两种: 厂家设置值:其值不可更改 用户设置:当前环境下有效,搜索顺序子父祖父

  33. 属性省缺值的描述结构为: • default+h中对象名称+对象属性 • get(h, 'defaulttypeproperty') • set(h, 'defaulttypeproperty',属性值) • 注意:h须为对象的父代 例: get(0, 'defaultfigurecolor') —— 获得图形窗口的省缺值 set(gca, 'defaultlinecolor','r') ——设置线的颜色为红色 例:在图上添加文字注释,颜色为红色 set(gca, 'defaulttextcolor',[1 0 0]) gtext('正弦'); gtext('余弦')

  34. End of This Lecture Thank!

More Related