matlab基本画图函数plot_第1页
matlab基本画图函数plot_第2页
matlab基本画图函数plot_第3页
matlab基本画图函数plot_第4页
matlab基本画图函数plot_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab中最基本的函数 plot()的用法 (2011-12-13 19:17:29)转载标签: matlab plot 指令5.1 二维平面图形5.1.1 基本图形函数plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲 线,当x 为m× n 矩阵时,就由n 条曲线。(2)plot(x,y) 以x 元

2、素为横坐标值,y 元素为纵坐标值绘制曲线。(3)plot(x,y1,x,y2,) 以公共的x 元素为横坐标值,以y1,y2, 元素为纵坐标值绘 制多条曲线。例5.1.1 画出一条正弦曲线和一条余弦曲线。>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot(x,y1,x,y2)图5.1.1 函数plot 绘制的正弦曲线在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MATLAB 软件专 门提供了这方面的参数选项(见表5.1.1),我们只要在每个坐标后加上相关字符串,就可 实现它们的功能。

3、- 2 -表5.1.1 绘图参数表色彩字符颜色线型字符线型格式标记符号数据点形式标记符号数据点形式y 黄- 实线. 点< 小于号m 紫: 点线o 圆s 正方形c 青-. 点划线x 叉号d 菱形r 红- - 虚线+ 加号h 六角星g 绿* 星号p 五角星b 蓝v 向下三角形w 白 向上三角形k 黑> 大于号例如,在上例中输入>> plot(x,y1,'r+-',x,y2,'k*:')则得图5.1.2图5.1.2 使用不同标记的plot 函数绘制的正弦曲线5.1.2 图形修饰MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好

4、的图形。 表5.1.2 图形修饰函数表函数含义grid on (/off) 给当前图形标记添加(取消)网络xlable(string) 标记横坐标ylabel(string) 标记纵坐标title(string) 给图形添加标题text(x,y,string) 在图形的任意位置增加说明性文本信息gtext(string) 利用鼠标添加说明性文本信息axis(xmin xmax ymin ymax) 设置坐标轴的最小最大值- 3 -例5.1.2 给例5.1.1 的图形中加入网络和标记。(见图5.1.3 和5.1.4)>> x=0:pi/10:2*pi;>> y1=sin(

5、x);>> y2=cos(x);>> plot(x,y1,x,y2)>> grid on>> xlabel('independent variable X')>> ylabel('Dependent Variable Y1 & Y2')>> title('Sine and Cosine Curve')>> text(1.5,0.3,'cos(x)')>> gtext('sin(x)')>> axis(

6、0 2*pi -0.9 0.9)图5.1.3 使用了图形修饰的plot 函数绘制的正弦曲线5.1.3 图形的比较显示在一般默认的情况下,MATLAB 每次使用plot 函数进行图形绘制,将重新产生一个图 形窗口。但有时希望后续的图形能够和前面所绘制的图形进行比较。一般来说有两种方法 :一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;二是采用subplot(m,n,k)函数,将图形窗口分隔成n m× 个子图,并选择第k 个子图作为当前图形 ,然后在同一个视图窗口中画出多个小图形。例5.1.3 在同一窗口中绘制线段。(见图5.1.5)>> x=0

7、:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> y3=x;- 4 ->> y4=log(x);>> plot(x,y1,x,y2)>> hold on>> plot(x,y3)>> plot(x,y4)>> hold off例5.1.4 在多个窗口中绘制图形。(见图5.1.6)>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> y3=exp(x);>>

8、y4=log(x);>> subplot(2,2,1);>> plot(x,y1);>> subplot(2,2,2);>> plot(x,y2);>> subplot(2,2,3);>> plot(x,y3);>> subplot(2,2,4);>> plot(x,y4);说明 (1)子窗口的序号按行由上往下,按列从左向右编号。(2)如果不用指令clf 清除,以后图形将被绘制在子图形窗口中。图5.1.4 设置坐标轴最大最小值的正弦曲线- 5 -图5.1.5 图形的比较显示(曲线叠加方法)图5.1.

9、6 图形的比较显示(图形窗口分割方法)- 6 -5.2 三维立体图形5.2.1 三维曲线图与二维图形相对应,MATLAB 提供了plot3 函数,可以在三维空间中绘制三维曲线, 它的格式类似于plot,不过多了z 方向的数据。plot3 的调用格式为:plot3(x1,y1,z1,x2,y2,z2,.)其中x1,y1,z1,x2,y2,z2,等分别为维数相同的向量,分别存储着曲线的三个坐标值,该 函数的使用方式和plot 类似,也可以采用多种的颜色或线型(见表5.1.1)来区分不同的数据 组,只需在每组变量后面加上相关字符串即可实现该功能。例5.2.1 绘制方程x=ty=sin(t)z=cos

10、(t)在t=0,2*pi上的空间方程。(见图5.2.1)>> clf>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> plot3(y1,y2,x,'m:p')>> grid on>> xlabel('Dependent Variable Y1')>> ylabel('Dependent Variable Y2')>> zlabel('Independent Variable X')

11、>> title('Sine and Cosine Curve')图5.2.1 函数plot 绘制的三维曲线图- 7 -5.2.2 三维曲面图如果要画一个三维的曲面,可以使用mesh(X,Y,Z)或surf(X,Y,Z)函数来实现。mesh 函数为数据点绘制网格线,图形中的每一个已知点和其附近的点用直线连接。surf 函数和mesh 的用法类似,但它可以画出着色表面图,图形中的每一个已知点与其相邻点以 平面连接。为方便测试立体绘图,MATLAB 提供了一个peaks 函数,它可以产生一个的高 斯分布矩阵,其生成方程是N N ×z=3*(1-x).2.*ex

12、p(-(x.2)-(y+1).2)-10*(x/5-x.3-y.5).*exp(-x.2-y.2)-1/3*exp(-(x+1).2-y.2)对应的图形是一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点。 下面使用peaks 函数来比较一下mesh 和surf 的区别。例5.2.2 分别用mesh 函数和surf 函数绘制高斯矩阵的曲面。>> z=peaks(40);>> mesh(z);>> surf(z);图5.2.2 mesh 函数绘制的三维曲面图- 8 -图5.2.3 surf 函数绘制的着色表面图在曲面绘图中,另一个常用的函数是meshgr

13、id 函数,其一般引用格式是:X, Y=meshgrid (x, y)其中x 和y 是向量,通过meshgrid 函数就可将x 和y 指定的区域转换成为矩阵X 和Y。 这样我们在绘图时就可以先用meshgrid 函数产生在x-y 平面上的二维的网格数据,再以一 组z 轴的数据对应到这个二维的网格,即可画出三维的曲面。例5.2.3 绘制方程sin(x2+y2)(1/2)z = -(x2+y2)(1/2)在x-7.5,7.5;y-7.5,7.5 的图形。>> x=-7.5:0.5:7.5;y=x;>> X,Y=meshgrid(x,y);>> R=sqrt(X.

14、2+Y.2)+eps;>> Z=sin(R)./R;>> surf(X,Y,Z)>> xlabel('X 轴方向')>> ylabel('Y 轴方向')>> zlabel('Z 轴方向')(见图5.2.4)_(x2+y2)例5.2.4 绘制由方程形成的立体图。(见图5.2.5) z=xe>> clear>> x=-2:0.1:2;y=x;>> X,Y=meshgrid(x,y);>> Z=X.*exp(-X.2-Y.2);- 9 ->

15、> surf(X,Y,Z)图5.2.4图5.2.5- 10 -5.2.3 观察点MTALAB 允许用户设置观察点,其指令是: view(azimuth,elevation)其中方位角azimuth 是观察点和坐标原点连线在x-y 平面的投影和y 轴负方向的夹角,仰 角elevation 是观察点与坐标原点的连线和x-y 平面的夹角。对于这两个角度,三维图形的 默认值分别是-37.5 和30,二维图形的默认值是0 和90。例5.2.5 从不同的角度观察高斯矩阵的曲面。>> z=peaks(40);>> subplot(2,2,1);>> mesh(z);

16、>> subplot(2,2,2);>> mesh(z);>> view(-37.5,-30);>> subplot(2,2,3);>> mesh(z);>> view(180,0);>> subplot(2,2,4);>> mesh(z);>> view(0,90);图5.2.6 对应不同观察点的三维曲面图5.3 其他图形函数除了plot 绘图函数以外,在有些场合对绘制的曲线会有一些特殊要求,这就要其他函 数来实现,常用的几种函数如下(见表5.3.1)- 11 -表5.3.1 其他图形

17、函数表函数含义loglog 使用对数坐标系绘图semilogx 横坐标为对数坐标轴,纵坐标为线性坐标轴semilogy 横坐标为线性坐标轴,纵坐标为对数坐标轴polar 绘制极坐标图fill 绘制实心图bar 绘制直方图pie 绘制饼图area 绘制面积图quiver 绘制向量场图stairs 绘制阶梯图sterm 绘制火柴杆图例5.3.1>> x=0:pi/10:2*pi;第5/9页>> y1=sin(x);>> subplot(2,2,1);>> plot(x,y1);>> subplot(2,2,2);>> bar(

18、x,y1);>> subplot(2,2,3);>> fill(x,y1,'g');>> subplot(2,2,4);>> stairs(x,y1,'k');图5.3.1 其他图形函数- 12 -5.3.1 直方图函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种形式: bar,bar3,barh 和bar3h,其中bar 和bar3 分别用来绘制二维和三维竖直方图,barh 和b ar3h 分别用来绘制二维和三维水平直方图,调用格式是:bar(x,y) 其中x 必须单调递增或递减,y

19、为n m× 矩阵,可视化结果为m 组,每 组n 个垂直柱,也就是把y 的行画在一起,同一列的数据用相同的颜色表示;bar(x,y,width) (或bar(y,width))指定每个直方条的宽度,如width>1,则直方条会重 叠,默认值为width=0.8;bar(,grouped) 使同一组直方条紧紧靠在一起;bar(,stack) 把同一组数据描述在一个直方条上。例5.3.2>> y=5 3 2 9;4 7 2 7;1 5 7 3;>> subplot(2,2,1),bar(y)>> x=5 9 11;>> subplot(

20、2,2,2),bar3(x,y)>> subplot(2,2,3),bar(x,y,'grouped')>> subplot(2,2,4),bar(rand(2,3),.75,'stack')图5.3.2 直方图5.3.2 面积图函数area 用来绘制面积图,面积图在plot 的基础上填充x 轴和曲线之间的面积,该图 用于查看某个数在该列所有数的总和中所占的比例。例5.3.3>> x=-3:3;>> y=3 2 5;6 1 8;7 4 9;6 3 7;8 2 9;4 2 9;3 1 7;>> area(

21、x,y)- 13 -图5.3.3 面积图5.3.3 饼图函数pie 用来绘制饼图,它可以形象地表示出向量中各元素所占比例。其调用格式是: pie(x) x 中的元素通过x/sum(x)进行归一化,以确定饼图中的份额;pie(x,explode) 向量explode 和x 元素数相同,用来指出需要分开的饼片,explode 中 不为零的部分会被分开。第6/9页图5.3.4 饼图- 14 -例5.3.4 设某班的某课程的考试成绩如下:90 分以上有32 人,81 至90 有58 人,71 至80 分有27 人,60 至70 分为21 人,60 分以下有16 人,画出饼图。(见图5.3.4) >

22、;> x=32 58 27 21 16;>> explode0=1 0 0 0 0;>> subplot(1,2,1)>> pie(x,explode0)>> explode1=0 0 0 0 1;>> subplot(1,2,2)>> pie(x,explode1)5.3.4 不同坐标系中的绘图Semilogx,semilogy,loglo,polar(theta,rho)的使用方法和plot 完全类似,不同的只是绘 制到不同的图形坐标上。函数semilogx 绘制x 轴为对数标度的图形,在半对数坐标系中绘图; 函

23、数semilogy 绘制y 轴为对数标度的图形;函数loglog 绘制两个轴都为对数间隔的图形 ;函数polar(theta,rho)绘制极坐标图形,其中theta 为相角,rho 为其对应的半径。 例5.3.5 绘制=acos(3),a=2 的图形。(见图5.3.5)>> theta=-pi:pi/80:pi;>> polar(theta,2*cos(3*theta)图5.3.5 极坐标图5.4 符号表达式绘图MATLAB 软件提供了将表达式进行图形显示的功能。完成此功能需调用fplot 函数和 ezplot 函数。- 15 -函数fplot 用来绘制数学函数,其调用

24、格式为: fplot(fun,lims)其中fun 就是所要绘制的函数,可以是定义函数的M 文件名,也可以是以x 为变量的可计 算字符串。例如diric(x,10)或sin(x),cos(x),对于向量x 的每个元素,函数fun(x)必须返回一个行向量。如果fun 返回f1(x),f2(x),f3(x),输入x1;x2,就会返回矩阵f1(x1) f2(x1) f3(x1)f1(x2) f2(x2) f3(x2)lims=XMIN XMAX YMIN YMAX限定了x,y 轴上的绘图空间。例5.4.1>> subplot(2,2,1),fplot('humps',0

25、1)>> subplot(2,2,2),fplot('abs(exp(-j*x*(0:9)*ones(10,1)',0 2*pi)>> subplot(2,2,3),fplot('tan(x),sin(x),cos(x)',2*pi*-1 1 -1 1)>> subplot(2,2,4),fplot('sin(1./x)',0.01 0.1,1e-3)图5.4.1 fplot 函数绘制表达式图形ezplot 函数是简捷绘图指令之一,它无需数据准备,直接画出函数图形,基本调用格式 为ezplot(f)其中f 是字

26、符串或代表数学函数的符号表达式,只有一个符号变量,可以是x,缺省情况下 x 轴的绘图区域为 2 , 2 ? ,但我们可以用ezplot(f,xmin,xmax)或ezp第7/9页lot(f,xmin,xmax)来指定x 的范围。例5.4.2>> y='x2'>> subplot(1,2,1)- 16 ->> ezplot(y)>> subplot(1,2,2)>> y='sin(x)'>> ezplot(y,-pi,pi)图5.4.2 ezplot 函数绘制表达式图形5.5 plot 函数MATLAB 对数据是按列存储和计算的,运用plot(x)时,当x 为一个向量时,以其元素为纵坐标,其序号为横坐标值绘制曲线。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论