Matlab http www2 nbu edu cn jiangzhidi mediasystem http bighand zxq net mediasystem
This presentation is the property of its rightful owner.
Sponsored Links
1 / 38

主讲:蒋志迪 宁波大学信息科学与工程学院 办公室:曹光彪信息楼 424 电话: 665929 email : [email protected] PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Matlab http www2 nbu edu cn jiangzhidi mediasystem http bighand zxq net mediasystem

多媒体信息处理系统设计

MATLAB绘图http://www2.nbu.edu.cn/jiangzhidi/mediasystem http://bighand.zxq.net/mediasystem

主讲:蒋志迪

宁波大学信息科学与工程学院

办公室:曹光彪信息楼424

电话:665929

email:[email protected]


424 665929 email bighandjzd 126

基本绘图

  • plot-----基本二维绘图函数

  • 格式1: plot(y)

  • y为复数矩阵,则相当于plot(real(y),imag(y))

  • 格式2: plot(x,y)

  • 如果y为多行或多列矩阵,则绘制多条曲线

  • 格式3: plot(x1, y1,x2,y2,…)

  • 绘制多条曲线在一个图中


424 665929 email bighandjzd 126

  • 格式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为一字符串,用于设置绘图颜色和线型


424 665929 email bighandjzd 126

  • 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);


424 665929 email bighandjzd 126

  • 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为该窗口的句柄(唯一标识),用于在多个窗口中绘图。


424 665929 email bighandjzd 126

  • 图形控制

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’)


424 665929 email bighandjzd 126

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) 显示或关闭坐标轴


424 665929 email bighandjzd 126

例.同一坐标系下画出的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


424 665929 email bighandjzd 126

特殊二维绘图

二维特殊绘图函数使用方法基本同plot

1、stem ––––绘制火柴杆图

例如:stem(t,y)

2、bar–––绘制直方图

例如:bar(t,y)

3、stairs ––––绘制阶梯图

例如:stairs (t,y,’r’)


424 665929 email bighandjzd 126

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])


424 665929 email bighandjzd 126

基本三维绘图

  • 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。


424 665929 email bighandjzd 126

  • mesh ------三维网格图

  • 格式1:mesh(z)

功能:z为二维矩阵,绘图时,

以元素下标( x = 1:n ,y = 1:m.)作为X-Y坐标,

元素值作为Z坐标, 将各点连成网格。颜色与高度成比例。

例如:♥ z=eye(10);mesh(z);

♥ z=peaks(20)(测试矩阵);

mesh(z);


424 665929 email bighandjzd 126

可以使用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)


424 665929 email bighandjzd 126

  • 格式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)


424 665929 email bighandjzd 126

  • 格式3:meshc(x,y,z)

功能:在网格下画一等值线图

例如:meshc(x,y,z)

  • 格式4:meshz(x,y,z)

功能:在网格下画一窗帘(垂直线)

例如:meshz(x,y,z)


424 665929 email bighandjzd 126

(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)


424 665929 email bighandjzd 126

  • 三维图形的颜色修饰

颜色是三维图形中的第四维,如果不指定,则以Z轴值为准

1、色图函数:colormap(map)

通过系统预置的色图,可改变显示的颜色

例如:surf(x,y,z);

colormap(hot)

colormap(spring)


424 665929 email bighandjzd 126

2、显示颜色条:colorbar

例如:surf(x,y,z);colorbar

3、颜色的浓淡处理:shading

用于改变mesh或surf的小网格或曲面的着色。有三种方法:

①shading flat:去掉黑色线条,根据小方块的值确 定颜色(平滑)

②shading interp:根据小方块四角的值差补过度点的值确定颜色(内插)

③shading faceted(缺省)(小平面)


424 665929 email bighandjzd 126

  • 图形控制

二维图形控制命令,大都适合三维图形控制

1、view(方位角,俯仰角) -----改变视角

缺省为(-37.5, 30),

例如:view(0,0) (看不见Y轴)

2、rotate3 on(off) ------允许旋转

3、hidden on(off) ----隐藏或透视被遮挡的地方


424 665929 email bighandjzd 126

  • 特殊三维绘图

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])

还有其它特殊函数。。。


424 665929 email bighandjzd 126

例 等高线

作出由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);


424 665929 email bighandjzd 126

父对象

子对象

根屏幕



窗口1

窗口2

窗口n

界面控制

界面菜单

线

高级绘图控制

图形对象的基本要素以根屏幕为先导

句柄图形: 可以随意改变Matlab生成图形的方式

图形对象之间的关系为父代与子代的关系


424 665929 email bighandjzd 126

创建图形对象的底层函数

  • figure创建图形窗口

    调用格式: h=figure(n) n为窗口序号

    figure (property1,value1, property2,value2, … )

    常用的属性有:

    menubar, name, numbertitle, resize, position, unite, color, pointer, keypressfcn, WindowButtonDownFcn, WindowButtonMotionFcn,


424 665929 email bighandjzd 126

  • axes  创建轴对象

    h=axes (property1,value1, property2,value2, … )

    常用的属性有:

    box, gridlinestyle,

    position, unite, color, title


424 665929 email bighandjzd 126

  • 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


424 665929 email bighandjzd 126

  • image  显示图象

    h=image(x); x为图像矩阵

  • text  标注文字

    h=text(x,y,z, ’文字’, property1,value1, property2,value2, … )

    常用的属性有:color, string, interpreter, fontsize, rotation

每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。


424 665929 email bighandjzd 126

  • 什么是句柄?

    句柄是图形对象的标识代码,标识代码含有图形对象的各种必要的属性信息。

  • 各图形对象的句柄数据格式:

    根屏幕: 0

    图形窗口: 整数,表示图形窗口数

    当前坐标轴的句柄:gca

    当前图形窗的句柄:gcf

    其它对象的句柄: 对应的符点数


424 665929 email bighandjzd 126

图形对象属性的获得与设置

  • 句柄属性的设置与修改

  • get: 获得句柄图形对象的属性和返回某些对象的 句柄值

  • set: 改变图形对象的属性

  • findobj: 根据对象特性获取句柄


424 665929 email bighandjzd 126

  • 操作格式:

    get(h)或get(h, '属性名') : 查阅某对象的属性或子(children)父(parent)代的句柄值

    set(h, '属性名', '属性值'):设置或修改某对象的属性值

    findobj (h)或findobj(h, '属性名', '属性值'):获取对象子对象的句柄值, 或获取指定属性值的对象的句柄.


424 665929 email bighandjzd 126

例:作正弦、余弦曲线,将正弦曲线改为虚线,将余弦曲线幅度减为1/2高度,如何用句柄实现。

x=0:2*pi/180:2*pi;

y1=sin(x);y2=cos(x);

plot(x,y1,x,y2,x,zeros(size(x)),':')


424 665929 email bighandjzd 126

  • 首先查询各对象的属性

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


424 665929 email bighandjzd 126

句柄属性的缺省值操作

  • 通过父代对象,设置缺省对象属性来实现的。

  • 父代句柄属性中设置省缺值后,所有子代对象均可以继承该属性的省缺值。

  • 属性缺省值设置有两种:

    厂家设置值:其值不可更改

    用户设置:当前环境下有效,搜索顺序子父祖父


424 665929 email bighandjzd 126

  • 属性省缺值的描述结构为:

  • default+h中对象名称+对象属性

  • get(h, 'defaulttypeproperty')

  • set(h, 'defaulttypeproperty',属性值)

  • 注意:h须为对象的父代

例: get(0, 'defaultfigurecolor') —— 获得图形窗口的省缺值

set(gca, 'defaultlinecolor','r') ——设置线的颜色为红色

例:在图上添加文字注释,颜色为红色

set(gca, 'defaulttextcolor',[1 0 0])

gtext('正弦'); gtext('余弦')


424 665929 email bighandjzd 126

End of This Lecture

Thank!


  • Login