版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab二维绘图2022-06-08 20:41本节介绍MATLAB 的两种根本绘图功能:二维平面图形和三维立体图形。5.1二维平面图形根本图形函数plot是绘制二维图形的最根本函数,它是针对向量或矩阵的列来绘制曲线的。也就是 说,使用plot函数之前,必须首先定义好曲线上每一点的x及y坐标,常用格式为:(1) plot(x)当x为一向量时,以x元素的值为纵坐标,x的序号为横坐标值绘制 曲线。当x为一实矩阵时,那么以其序号为横坐标,按列绘制每列元素值相对于其序号的曲 线,当X为mix n矩阵时,就由n条曲线。(2) plot(x,y)以x元素为横坐标值,y元素为纵坐标值绘制曲线。(3) p
2、lot(x,y1,x,y2,以公共的x元素为横坐标值,以y1,y2,元素为纵坐标值绘制多条 曲线。例画出一条正弦曲线和一条余弦曲线。>> x=0:pi/10:2*pi;>> y1=si n( x);>> y2=cos(x);>> plot(x,y1,x,y2)1图 5.1.1 函数 plot 绘制的正弦曲线 在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组, MATLAB 软件专 门提供了这方面的参数选项见表 ,我们只要在每个坐标后加上相关字符串,就可 实现它们的功能。表 5.1.1 绘图参数表色彩字符颜色线型字符线型格式标记符号数据点
3、形式标记符号数据点形式y 黄- 实线 . 点< 小于号 m 紫: 点线 o 圆 s 正方形 c 青 -. 点划线 x 叉号 d 菱形 r 红 - - 虚线 + 加号 h 六角星 g 绿 * 星号 p 五角星 b 蓝 v 向下三角形 w白A向上三角形 k 黑 > 大于号 例如,在上例中输入>> plot(x,y1,'r+-',x,y2,'k*:')那么得图 图使用不同标记的plot函数绘制的正弦曲线图形修饰MATLAB软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形 表图形修饰函数表函数含义grid on (/off)给当前图形
4、标记添加(取消)网络xlable( stri ng '标记横坐标ylabel( stri ng '标记纵坐标title( string '给图形添加标题text(x,y, ' string在图形的任意位置增加说明性文本信息 gtext( string '利用鼠标添加说明性文本信息axis(xmin xmax ymin ymax) 设置坐标轴的最小最大值例给例的图形中参加网络和标记。(见图 和)>> x=0:pi/10:2*pi;>> y1=si n( x);>> y2=cos(x);>> plot(x,y1
5、,x,y2)>> grid on>> xlabel('i ndepe ndent variable X')>> ylabel('Depe ndent Variable Y1 & Y2')>> title('Sine and Cosine Curve')>> text(1.5,0.3,'cos(x)')>> gtext('si n(x)')>> axis(0 2*pi -0.9 0.9)图使用了图形修饰的plot函数绘制的正弦
6、曲线图形的比拟显示在一般默认的情况下,MATLAB每次使用plot函数进行图形绘制,将重新产生一个图 形窗口。但有时希望后续的图形能够和前面所绘制的图形进行比拟。一般来说有两种方法: 一是采用hold on(/off)命令,将新产生的图形曲线叠加到已有的图形上;二是采用subplot(m,n,k)函数,将图形窗口分隔成n mx个子图,并选择第k个子图作为当 前图形,然后在同一个视图窗口中画出多个小图形。例在同一窗口中绘制线段。>> x=0:pi/10:2*pi;>> y1=si n( x);>> y2=cos(x);>> y3=x;>>
7、; y4=log(x);>> plot(x,y1,x,y2)>> hold on>> plot(x,y3)>> plot(x,y4)>> hold off例 5.1.4 在多个窗口中绘制图形。(见图 )>> x=0:pi/10:2*pi;>> y1=sin(x);>> y2=cos(x);>> y3=exp(x);>> y4=log(x);>> subplot(2,2,1);>> plot(x,y1);>> subplot(2,2,2);&
8、gt;> plot(x,y2);>> subplot(2,2,3);>> plot(x,y3);>> subplot(2,2,4);>> plot(x,y4);说明 1子窗口的序号按行由上往下,按列从左向右编号。 2如果不用指令 clf 去除,以后图形将被绘制在子图形窗口中图图形的比拟显示图形窗口分割方法5.2三维立体图形 三维曲线图与二维图形相对应,MATLAB提供了 plot3函数,可以在三维空间中绘制三维曲线, 它的格式类似于plot,不过多了 z方向的数据。plot3的调用格式为: plot3(x1,y1,z1,x2,y2,z2,.
9、J其中x1,y1,z1,x2,y2,z2,等分别为维数相同的向量,分别存储着曲线的三个坐标值,该函数的使用方式和plot类似,也可以采用多种的颜色或线型见表5.1.1 来区分不同的数据组,只需在每组变量后面加上相关字符串即可实现该功能。例绘制方程x=t y=s in(t)z=cos(t)在t=0,2*pi上的空间方程。见图>> elf>> x=0:pi/10:2*pi;>> y1=si n( x);>> y2=cos(x);>> plot3(y1,y2,x,'m:p')>> grid on>>
10、xlabel('Depe ndent Variable Y1') >> ylabel('Dependent Variable Y2') >> zlabel('I ndepe ndent Variable X') >> title('Sine and Cosine Curve')Sine and Ccslne Cur've图函数plot绘制的三维曲线图三维曲面图如果要画一个三维的曲面,可以使用mesh(X,Y,Z)或surf(X,Y,Z)函数来实现。mesh函数为数据点绘制网格线,图形中的
11、每一个点和其附近的点用直线连接。surf函数和mesh的用法类似,但它可以画出着色外表图,图形中的每一个点与其相邻点以 平面连接。为方便测试立体绘图,MATLAB 提供了一个peaks函数,它可以产生一个的高斯分布矩阵,其生成方程是 NNXz=3*(1-x).A2.*exp(-(x.A2)-(y+1).A2)-10*(x/5-x.A3-y.A5).*exp(-x.A2-y.A2)-1/3*exp(-(x+1).A2-y.A2)对应的图形是一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点。下面使用peaks函数来比拟一下 mesh和surf的区别。例分别用mesh函数和surf函数绘制高
12、斯矩阵的曲面。>> z=peaks(40);>> mesh(z);>> surf(z);0 图5.2.2 mesh函数绘制的三维曲面图ID 图523 surf函数绘制的着色外表图在曲面绘图中,另一个常用的函数是 meshgrid函数,其一般引用格式是: X, Y=meshgrid (x, y)其中x和y是向量,通过meshgrid函数就可将x和y指定的区域转换成为矩阵 X和丫 这样我们在绘图时就可以先用 meshgrid函数产生在x-y平面上的二维的网格数据,再以一 组z轴的数据对应到这个二维的网格,即可画出三维的曲面。例绘制方程sin ©八2+丫
13、八2)八(1/2) z =(xA2+yA2)A(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.A2+Y.A2)+eps;>> Z=si n(R)./R;>> surf(X,Y,Z)>> xlabel('X 轴方向') >> ylabel('Y 轴方向') >> zlabel('Z 轴方向') (见图 5.2.4)-io -10图
14、 例绘制由方程形成的立体图。(见图)z=x*exp(-(xA2+yA2)>> clear>> x=-2:0.1:2;y=x;>> X,Y=meshgrid(x,y);>> Z=X.*exp(-X.A2-Y.A2);>> surf(X,Y,Z)-2 -2图525523观察点MTALAB允许用户设置观察点,其指令是:view(azimuth,elevatio n)其中方位角azimuth是观察点和坐标原点连线在x-y平面的投影和y轴负方向的夹角,仰 角elevation是观察点与坐标原点的连线和 x-y平面的夹角。对于这两个角度,三维图形
15、的 默认值分别是-37.5和30,二维图形的默认值是0和90。例从不同的角度观察高斯矩阵的曲面。>> z=peaks(40);>> subplot(2,2,1);>> mesh(z);>> subplot(2,2,2);>> mesh(z);>> view(-37.5,-30);>> subplot(2,2,3);>> mesh(z);>> view(180,0);>> subplot(2,2,4);10101040400202020401040aiasIS204030102
16、040图526对应不同观察点的三维曲面图5.3其他图形函数除了 plot绘图函数以外,在有些场合对绘制的曲线会有一些特殊要求,这就要其他函 数来实现,常用的几种函数如下见表 表其他图形函数表 函数含义loglog使用对数坐标系绘图semilogx横坐标为对数坐标轴,纵坐标为线性坐标轴semilogy横坐标为线性坐标轴,纵坐标为对数坐标轴polar绘制极坐标图fill绘制实心图bar绘制直方图pie绘制饼图area绘制面积图quiver绘制向量场图stairs绘制阶梯图sterm绘制火柴杆图>> mesh(z); >> view(0,90);例531>> x=
17、0:pi/10:2*pi;>> y1=si n( x);>> subplot(2,2,1);>> plot(x,y1);>> subplot(2,2,2);>> bar(x,y1);>> subplot(2,2,3);>> fill(x,y1,'g');>> subplot(2,2,4);>> stairs(x,y1,'k');图其他图形函数直方图函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。它共有四种形式: bar,bar3,barh
18、和bar3h,其中bar和bar3分别用来绘制二维和三维竖直方图,barh和bar3h分别用来绘制二维和三维水平直方图,调用格式是: bar(x,y)其中x必须单调递增或递减,y为nmx矩阵,可视化结果为m组,每 组n个垂直柱,也就是把y的行画在一起,同一列的数据用相同的颜色表示; bar(x,y,width)(或bar(y,width)指定每个直方条的宽度,女口 width>1,那么直方条会重叠,默认值为width=0.8 ;bar(,'groupe使同一组直方条紧紧靠在一起; bar(,'stac把同一组数据描述在一个直方条上例532>> y=5 3 2
19、9;4 7 2 7;1 5 7 3;>> subplot(2,2,1),bar(y)>> x=5 9 11;>> subplot(2,2,2),bar3(x,y)>> subplot(2,2,3),bar(x,y,'grouped')>> subplot(2,2,4),bar(ra nd(2,3),.75,'stack')i图直方图面积图函数area用来绘制面积图,面积图在 plot的根底上填充x轴和曲线之间的面积,该图 用于查看某个数在该列所有数的总和中所占的比例。例 >> x=-3:3;
20、>> y=3 2 5;6 1 8;7 4 9;6 3 7;8 2 9;4 2 9;3 1 7;>> area(x,y)-3-2-10123图533面积图533饼图函数pie用来绘制饼图,它可以形象地表示出向量中各元素所占比例。其调用格式是: pie(x) x中的元素通过x/sum(x)进行归一化,以确定饼图中的份额;pie(x,explode)向量explode和x元素数相同,用来指出需要分开的饼片,explode中不为零的局部会被分开。例设某班的某课程的考试成绩如下:90分以上有32人,81至90有58人,71 至80分有27人,60至70分为21人,60分以下有16
21、人,画出饼图。(见图 ) >> x=32 58 27 21 16; >> explode0=1 0 0 0 0;>> subplot(1,2,1)>> pie(x,explode0)>> explode 1=0 0 0 0 1;>> subplot(1,2,2)>> pie(x,explode1)图534饼图534不同坐标系中的绘图Semilogx,semilogy,loglo,polar(theta,rho)的使用方法和plot完全类似,不同的只是绘制到不同的图形坐标上。函数semilogx绘制x轴为对数标度
22、的图形,在半对数坐标系中绘 图;函数semilogy绘制y轴为对数标度的图形;函数loglog绘制两个轴都为对数间隔的图形; 函数polar(theta,rho)绘制极坐标图形,其中theta为相角,rho为其对应的半径。例 5.3.5 绘制 p =acos(3 9 ),a=2图形。(见图 ) >> theta=-pi:pi/80:pi;>> polar(theta,2*cos(3*theta)图535极坐标图5.4符号表达式绘图MATLAB软件提供了将表达式进行图形显示的功能。完成此功能需调用fplot函数和ezplot 函数。函数fplot用来绘制数学函数,其调用格
23、式为: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 轴上的绘图空间。例 >> subplot(2,2,1),fplot('humps&
24、#39;,0 1)>> subplot(2,2,2),fplot('abs(exp(-j*x*(0:9)*o nes(10,1) ',0 2*pi)>> subplot(2,2,3),fplot('ta n(x),si n(x),cos(x)',2*pi*-1 1-1 1)>> subplot(2,2,4),fplot('si n(1./x)', 0.01 0.1,1e-3)IOO图541 fplot函数绘制表达式图形ezplot函数是简捷绘图指令之一,它无需数据准备,直接画出函数图形,根本调用格式为ezplo
25、t(f)其中f是字符串或代表数学函数的符号表达式,只有一个符号变量,可以是x,缺省情况下x轴的绘图区域为-n ,,但我们可以用 ezplot(f,xmin,xmax)或ezplot(f,xmin,xmax)来指定 x的范围。例 5.4.2 >> y='xA2'>> subplot(1,2,1)>> ezplot(y)>> subplot(1,2,2)>> y='si n( x)'>> ezplot(y,-pi,pi)图542 ezplot函数绘制表达式图形5.5 plot 函数MATLAB对数据是按列存储和计算的,运用plot(x)时,当x为一个向量时,以其元素为纵坐标,其序号为横坐标值绘制曲
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 诚信住宅装饰材料供应保证函3篇范文
- 采购部新设备验收标准确认函5篇范文
- 稀有矿石勘探承诺书8篇范文
- 婚姻家庭关系守秘责任承诺书5篇
- 呼吸科营养支持治疗方案
- 个人及家庭安全个人健康档案管理预案
- 餐饮行业卫生食品安全严控承诺书(7篇)
- 2025 高中信息技术信息系统在书店线上线下融合销售信息管理课件
- 电子数据交易诚信保障承诺书(8篇)
- 虚拟现实在教育培训中的应用
- 城市轨道交通行车组织50课件
- 2025年江苏护理职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- 办公室用电安全分享
- 2025年度汽车零部件模具研发与生产合同范本
- 2025年度高速公路智能化监控系统建设合同3篇
- 化工泵技术要求
- 船舶内部审核-审核要素
- 2024年常州信息职业技术学院单招职业适应性测试题库及答案一套
- 贵州源鑫矿业有限公司煤矸石洗选综合利用项目环评报告
- 高中地理(湘教版2019版)必修二 全册知识点
- 1993年物理高考试卷与答案
评论
0/150
提交评论