第三章 二维平面绘图课件_第1页
第三章 二维平面绘图课件_第2页
第三章 二维平面绘图课件_第3页
第三章 二维平面绘图课件_第4页
第三章 二维平面绘图课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 3.1 3.1 基本的二维绘图命令基本的二维绘图命令 3.2 3.2 图形的控制图形的控制3.3 3.3 图轴形的控制图轴形的控制 3.4 3.4 文字说明文字说明 3.5 3.5 打印功能打印功能 3.1 .1 基本的二维绘图命令基本的二维绘图命令 MATLABMATLAB不但擅长于矩阵相关的各种数值运算,也具不但擅长于矩阵相关的各种数值运算,也具有非常强大的绘图功能,特别适用于各种科学计算可视有非常强大的绘图功能,特别适用于各种科学计算可视化化(Scientific Visualization)(Scientific Visualization)。 MATLABMATLAB的的plotp

2、lot是最基本的绘图命令,可以对一组是最基本的绘图命令,可以对一组x x坐坐标及相对应的标及相对应的y y坐标,进行描点绘图,例如:坐标,进行描点绘图,例如: x=linspace(0,2x=linspace(0,2* *pi)pi); % %在在0 0到到22间,等分取间,等分取100100个点个点 y=sin(x)y=sin(x); % %计算计算X X的正弦函数值的正弦函数值 plot(x,y)plot(x,y); % %进行二维平面描点绘图进行二维平面描点绘图 图3.1 二维平面描点绘图 在上例中,在上例中,linspace(0,2linspace(0,2* *pi)pi)产生从产生从

3、0 0到到22且长度为且长度为100(100(默认值默认值) )的向量的向量x x,y y则是相对应的则是相对应的y y坐标值,坐标值,plot(x,y)plot(x,y)则可对这则可对这100100个二维平面上的点进行描点绘图。个二维平面上的点进行描点绘图。 如果只给定一个向量,那么如果只给定一个向量,那么plotplot命令会将此向量对其命令会将此向量对其索引值索引值(index)(index)绘图。因此,若绘图。因此,若y y为一向量,则为一向量,则plot(y)plot(y)和和plot(1:length(y),y)plot(1:length(y),y)会得到相同的结果。若要利用会得到

4、相同的结果。若要利用plotplot命命令一次画出多条曲线,可将令一次画出多条曲线,可将x x及及y y坐标依次送入坐标依次送入plotplot命令即命令即可可( (图图3.23.2所示所示) ),例如:,例如: x=linspace(0,2x=linspace(0,2* *pi)pi); % %在在0 0到到22间,等分取间,等分取100100个点个点 plot(x,sin(x),x,cos(x),x,sin(x)+cos(x)plot(x,sin(x),x,cos(x),x,sin(x)+cos(x); % %进行进行多条曲线描点绘图多条曲线描点绘图图3.2 多条曲线平面描点绘图 MATL

5、ABMATLAB在绘制多条曲线时,会自动转换曲线颜色,以利于分辨。在绘制多条曲线时,会自动转换曲线颜色,以利于分辨。若要以不同的标志若要以不同的标志(Marker)(Marker)来绘图来绘图, ,可输入如下:可输入如下: x=linspace(0,2x=linspace(0,2* *pi)pi); plot(x,sin(x),o, x,cos(x),x,x,sin(x)+cos(x),plot(x,sin(x),o, x,cos(x),x,x,sin(x)+cos(x),* *);图图3.3 3.3 多条曲线不同的标志不同的标志平面描点绘图 如果输入参数对一个是矩阵,一个是向量,如果输入参数

6、对一个是矩阵,一个是向量,plotplot函数函数会将矩阵中的每一行与向量参数组成一个输入对,分别绘会将矩阵中的每一行与向量参数组成一个输入对,分别绘出相应的图形。例如:出相应的图形。例如:x=linspace(0,2x=linspace(0,2* *pi,30);pi,30);y=sin(x);y=sin(x);z=cos(x);z=cos(x);w=y;z;w=y;z;plot(x,w);plot(x,w);title(Figure 3.4:Change Argument Order)title(Figure 3.4:Change Argument Order)grid ongrid on

7、图图3.4 3.4 行向量对应每一个列向量绘图行向量对应每一个列向量绘图 提示提示: : 一般情况下,一般情况下,MATLABMATLAB矩阵视为列向量的集合。因此对于一个只能矩阵视为列向量的集合。因此对于一个只能处理向量的函数处理向量的函数( (例如:例如:maxmax、minmin及及meanmean等等) ),若始定一个矩阵,则此函,若始定一个矩阵,则此函数会对矩阵的列向量一一进行处理或运算。数会对矩阵的列向量一一进行处理或运算。 如果如果z z是一个复数向量或矩阵,那么是一个复数向量或矩阵,那么plot(z)plot(z)是将是将z z的实的实部部( (即即real(z)real(z)

8、和虚部和虚部( (即即imag(z)imag(z)分别当成分别当成x x坐标和坐标和y y坐标来坐标来绘图,其效果与绘图,其效果与plot(real(z),imag(z)plot(real(z),imag(z)相同相同 。 x=randn(30)x=randn(30); % %产生产生3030* *3030的随机数的随机数( (正态分布正态分布) )矩阵矩阵 z=eig(x)z=eig(x); % %计算计算x x的特征值的特征值 plot(z,plot(z,o o) ) grid ongrid on % %画出网格线画出网格线 x x是一个是一个3030* *3030的随机数矩阵,的随机数矩

9、阵,z z则是则是x x的特征值。由于的特征值。由于z z是一复数向量,而且每一个复数都和其共轭复数同时出现,是一复数向量,而且每一个复数都和其共轭复数同时出现,因此所画出的图是上下对称的因此所画出的图是上下对称的( (图图3.53.5)。)。 图图3.5 3.5 绘出网格线的结果绘出网格线的结果相关的相关的MATLABMATLAB基本二维绘图命令基本二维绘图命令命令命令说明说明Plot x轴和轴和y轴均为线性刻度轴均为线性刻度(Linear Scale) loglogx轴和轴和y轴均为对数刻度轴均为对数刻度(Logarithmic Scale)semilogx x轴为对数刻度,轴为对数刻度,

10、y轴为线性刻度轴为线性刻度semilogyx轴为线性刻度,轴为线性刻度,y轴为对数刻度轴为对数刻度 plotyy画山两个刻度不同的画山两个刻度不同的y轴轴 例如,若要使例如,若要使x x轴为对数刻度,来对正弦函数绘图,可进行如下:轴为对数刻度,来对正弦函数绘图,可进行如下: x=linspace(0,8x=linspace(0,8* *pi)pi); % %在在0 0到到88间,等分取间,等分取100100个点个点 semilogx(x,sin(x)semilogx(x,sin(x); % %使使x x轴为对数刻度,对其正弦函数绘图轴为对数刻度,对其正弦函数绘图 plotyyplotyy命令可

11、以画出两个刻度不同的命令可以画出两个刻度不同的y y轴轴( (如图如图3.63.6所示所示) ),输入如下:,输入如下: x=linspace(0,2x=linspace(0,2* *pi)pi); % %在在0 0到到22间,等分取间,等分取100100个点个点 yl=sin(x)yl=sin(x); y2=exp(-x)y2=exp(-x); plotyy(x,yl,x,y2)plotyy(x,yl,x,y2); % %画出两个刻度不同的画出两个刻度不同的y y轴,分别是轴,分别是y1y1,y2y2 y1 y1的刻度是在左边,的刻度是在左边,y2y2的刻度是在右边,而且两边的刻度是不一样的

12、刻度是在右边,而且两边的刻度是不一样的。的。图图3.6 3.6 利用利用plotyyplotyy绘出两个刻度不同的绘出两个刻度不同的y y轴轴3.2.2 图形的控制图形的控制 plot plot命令除了接受命令除了接受x x及及y y坐标外,还可接受一个字符串坐标外,还可接受一个字符串输入,用以控制曲线的颜色、格式及标志,其使用语法如输入,用以控制曲线的颜色、格式及标志,其使用语法如下:下: plot(x,y,CLM)plot(x,y,CLM) 其中其中C C代表曲线的颜色代表曲线的颜色(Colors)(Colors),L L代表曲线的格式代表曲线的格式(Line Styles)(Line S

13、tyles),M M代表曲线所用的标志代表曲线所用的标志(Markers)(Markers)。 例如,若要用黑色点线画出正弦波,并在每一数据点例如,若要用黑色点线画出正弦波,并在每一数据点画上一个小菱形画上一个小菱形( (图图3.7)3.7),可输入如下:,可输入如下: x=0:O.5:4x=0:O.5:4* *pipi; %x%x向量的起始与结束元素为向量的起始与结束元素为O O及及44,O.5O.5为各元素相差值为各元素相差值 y=sin(x)y=sin(x); plot(x,y,k:diamond)plot(x,y,k:diamond) % %其中其中“k k代表黑色,代表黑色,:代代表

14、点线,而表点线,而diamonddiamond则指定菱形为曲线的标志则指定菱形为曲线的标志图图3.7 3.7 利用图形控制绘图利用图形控制绘图plotplot命令命令曲线颜色曲线颜色RGBRGB值值b bBlueBlue(0 0,0 0,1 1)c cCyanCyan(0 0,1 1,1 1)g gGreenGreen(0 0,1 1,0 0)k kBlackBlack(0 0,0 0,0 0)m mMagentaMagenta(1 1,0 0,1 1)r rRedRed(1 1,0 0,0 0)w wWhiteWhite(1 1,1 1,1 1)y yYellowYellow(1 1,1 1

15、,0 0)表表3-2 plot3-2 plot命令曲线颜色选项参考表命令曲线颜色选项参考表plot命令命令曲线线型曲线线型.实线实线-虚线虚线:点线点线-.点划线点划线表表3-3 3-3 plotplot命令曲线线型选项参考表命令曲线线型选项参考表 plot命令命令曲线符号曲线符号o圆形圆形+加号加号x叉号叉号*星号星号.点号点号朝上三角形朝上三角形v朝下三角形朝下三角形朝右三角形朝右三角形 x=linspace(0,2 x=linspace(0,2* *pi,30); pi,30); y=sin(x); y=sin(x); z=cos(x); z=cos(x); plot(x,y,x,z)

16、plot(x,y,x,z) axis off axis off axis on axis on axis(square,equal) axis(square,equal) axis(xy,normal) axis(xy,normal) 通常,通常,plotplot命令会根据所给的坐标点来自动决定图轴的命令会根据所给的坐标点来自动决定图轴的范围,但是也可以使用范围,但是也可以使用axisaxis命令来指定,其使用语法如下:命令来指定,其使用语法如下: axis(xmin,xmax,ymin,ymax)axis(xmin,xmax,ymin,ymax) 其中其中xminxmin和和xmaxxmax

17、指定指定x x轴的最小和最大值,轴的最小和最大值,yminymin和和ymaxymax则则指定指定y y轴的最小和最大值。轴的最小和最大值。 例如:要画出正弦波在例如:要画出正弦波在y y轴介于轴介于0 0和和1 1的部分,可输入如下:的部分,可输入如下: x=0:0.1:4x=0:0.1:4* *pipi; %x%x向量的起始与结束元素为向量的起始与结束元素为0 0及及4n4n、0.10.1为各元素相差值为各元素相差值 y=sin(x)y=sin(x); plot(xplot(x,y)y); axis(-inf,inf,0,1)axis(-inf,inf,0,1); % %画出正弦波画出正弦

18、波y y轴介于轴介于O O和和1 1的部分的部分 其中使用到其中使用到-inf-inf及及inf,inf,并不是代表并不是代表“无穷大无穷大”,而是代表以数据点,而是代表以数据点( (上例中即是上例中即是x x轴的数据点轴的数据点) )的最小值和最大值来取代,因此上述的最小值和最大值来取代,因此上述axisaxis命令命令等效于等效于axis(min(x),max(x),0,1)axis(min(x),max(x),0,1)。 MATLABMATLAB也可以指定图轴上的标刻点也可以指定图轴上的标刻点(Ticks(Ticks)。例如:)。例如: x=0:0.1:4x=0:0.1:4* *pipi

19、; plot(x,sin(x)+sin(3plot(x,sin(x)+sin(3* *x)x) set(gca,ytick set(gca,ytick,-1 -O.3 0.1 1)-1 -O.3 0.1 1) grid on grid on 图3.8 指定坐标轴的刻度点 其中其中grid ongrid on的功能的功能即是加上网格线。即是加上网格线。此外,此外,gcagca可返回目可返回目前使用中的图轴前使用中的图轴(gca(gca是属于是属于Handle Handle GraphicsGraphics的命令的命令) )。 除了改变标刻点外,还可将标刻点的数字改为文字除了改变标刻点外,还可将标

20、刻点的数字改为文字( (图图3.9)3.9),输入如下:,输入如下: x=0:0.1:4x=0:0.1:4* *pipi; plot(x, sin(x)+sin(3plot(x, sin(x)+sin(3* *x)x) set(gca,ytick,-l -O.3 O.l 1) set(gca,ytick,-l -O.3 O.l 1) set(gca,yticklabel, set(gca,yticklabel,极小极小 , 临界值临界值 , 崩溃值崩溃值 , 极大极大) grid on grid on图图3.9 3.9 指定坐标轴的刻度点的文字指定坐标轴的刻度点的文字 要将数个相关的图画在同一

21、页时,可以用要将数个相关的图画在同一页时,可以用subplotsubplot这这个指令。个指令。 语法为语法为 subplot(m,n,p)subplot(m,n,p) 其中其中 m,nm,n代表绘图成代表绘图成 m m* *n n 个子图,个子图,m m表示在表示在 y y方向有方向有m m图,图,n n表示在表示在x x方向有方向有n n个图,个图,p p 代表第几个子图。下例是代表第几个子图。下例是以以subplotsubplot分别画出线性及对数尺度的分别画出线性及对数尺度的4 4个子图个子图( (图图3.10)3.10): x=0 2 5 7 10 12 15 17 20 21; x

22、=0 2 5 7 10 12 15 17 20 21; y=0.1 0.2 0.5 0.6 0.9 1 1.2 1.26 1.22 1.2; y=0.1 0.2 0.5 0.6 0.9 1 1.2 1.26 1.22 1.2; subplot(2,2,1), plot(x,y) subplot(2,2,1), plot(x,y) % %画左上角的图画左上角的图 subplot(2,2,2), semilogx(x,y) subplot(2,2,2), semilogx(x,y) % %画右上角的图画右上角的图 subplot(2,2,3), semilogy(x,y) subplot(2,2,

23、3), semilogy(x,y) % %画左下角的图画左下角的图 subplot(2,2,4), loglog(x,y) subplot(2,2,4), loglog(x,y) % %画右下角的图画右下角的图 图图3.10 subplot3.10 subplot分别画四个子图的位置分别画四个子图的位置 zoomzoom 指令可以将图形放大或缩小,若要将图形放大时指令可以将图形放大或缩小,若要将图形放大时用用 zoom onzoom on,zoom outzoom out,当不再须要放大或缩小图形时用,当不再须要放大或缩小图形时用 zoom offzoom off。 M=peaks(25);

24、M=peaks(25); % peaks% peaks是是MATLABMATLAB内建的一个像山峰的特别函数内建的一个像山峰的特别函数 plot(M) plot(M) % % 函数矩阵的大小,如果数值愈大则画出的山函数矩阵的大小,如果数值愈大则画出的山峰图愈平滑峰图愈平滑 zoom on zoom on % % 开始放大图形,每按一次开始放大图形,每按一次EnterEnter键图形就放大键图形就放大一次一次 zoom out zoom out % % 开始缩小图形,每按一次开始缩小图形,每按一次EnterEnter键图形就缩小键图形就缩小一次一次 zoom off zoom off % % 停

25、止图形放大或缩小功能停止图形放大或缩小功能 如果要在所画的图中的曲线的某处加上符号,而又如果要在所画的图中的曲线的某处加上符号,而又可以随意的放置这些符号,则可以用指令可以随意的放置这些符号,则可以用指令ginputginput方式方式 ,可以用鼠标在屏幕上输入要加上符号的座标。可以用鼠标在屏幕上输入要加上符号的座标。 其语法为其语法为 x,y=ginput(n) x,y=ginput(n) 下面的例子是一个有下面的例子是一个有8 8个峰顶及峰谷的个峰顶及峰谷的 函数分布图函数分布图(y=sin(x)/ x)(y=sin(x)/ x),以鼠标方式将符号加在这些峰值上,以,以鼠标方式将符号加在这

26、些峰值上,以突显这些极值。突显这些极值。 x=linspace(-2 x=linspace(-2* *pi,2pi,2* *pi,60); pi,60); y=sin(x).2./(x+eps); y=sin(x).2./(x+eps); % % 注意加上注意加上epseps可避免可避免当当x x趋近零时,趋近零时,y y会无法定义会无法定义 plot(x,y) plot(x,y) a,b=ginput(8); a,b=ginput(8); % % 依序从屏幕输入依序从屏幕输入8 8点点的座标的座标 hold on hold on plot(a,b,co) plot(a,b,co) % % 依

27、据输入的座标值依据输入的座标值将符号画在图上适当位置将符号画在图上适当位置 hold off hold off3.4 .4 文字说明文字说明 MATLABMATLAB可在图形或图轴加入说明文字,以增进整体图形的可读性。可在图形或图轴加入说明文字,以增进整体图形的可读性。 命令命令说明说明titletitle图形标题图形标题xlabelxlabelx x轴的说明轴的说明ylabelylabely y轴的说明轴的说明zlabelzlabelz z轴的说明轴的说明legendlegend图例图例texttext图形中的文字说明图形中的文字说明gtextgtext使用鼠标确定文字的位置使用鼠标确定文字

28、的位置 图形或轴文字说明命令表图形或轴文字说明命令表 例如:例如: subplot(1subplot(1,l l,1)1); x=0:O.1:2x=0:O.1:2* *pipi; y1=sin(x)y1=sin(x); y2=exp(-x)y2=exp(-x); plot(x, y1,plot(x, y1,-* *,x,y2,x,y2,:o:o);); xlabel( xlabel(t=0 to 2pit=0 to 2pi);); ylabel( ylabel(Values of sin(t)Values of sin(t) and and e-x e-x) ) title( title(Fu

29、nction PlotsFunction Plots of sin(t) and e-x) of sin(t) and e-x);); legend( legend(sin(t),sin(t),e-x)e-x); 其中其中legendlegend命令将会画出一小方块,包含每条曲线的命令将会画出一小方块,包含每条曲线的说明。如果对说明。如果对legendlegend方块位置不满意,可用鼠标单击拖放方块位置不满意,可用鼠标单击拖放至适当位置。至适当位置。 MATLABMATLAB将反斜线将反斜线“ ”视为特殊符号,因此可产生上标、视为特殊符号,因此可产生上标、下标、希腊字母、数学符号等效果,其遵循

30、的规则如同一下标、希腊字母、数学符号等效果,其遵循的规则如同一般般LaTexLaTex或或TeXTeX的数学模式。的数学模式。图图3.113.11 加入文字说明后的结果加入文字说明后的结果 在图形上面加入说明文字,可用在图形上面加入说明文字,可用texttext或或gtextgtext命令。命令。texttext命令的使命令的使用语法为用语法为: : text(x,y,string)text(x,y,string) 其中其中x x、y y是说明文字的起始坐标位置,是说明文字的起始坐标位置,stringstring则代表说明文字,则代表说明文字,例如:例如: x=0:0.1:2x=0:0.1:2

31、* *pipi; plot(x,sin(x),x, cos(x)plot(x,sin(x),x, cos(x); text(pi/4text(pi/4,sin(pi/4)sin(pi/4),leftarrow sin(pi/4)=0.707)leftarrow sin(pi/4)=0.707); text(5text(5* *pi/4pi/4,cos(5cos(5* *pi/4)pi/4),cos(5pi/4)=.cos(5pi/4)=. -0.707rightarrow -0.707rightarrow, ,HorizontalAlignmentHorizontalAlignment, ,rightright) ); ”HorizontalAlignmemHorizontalAlignmem“及及“rightright”指示指示texttext命令将文字向右水平命令将文字向右水平靠齐。靠齐。图图3.12 text3.12 text命令的运行结果命令的运行结果 gtext gtext的使用语法为的使用语法为: : gtext(string)gtext(string) 用鼠标在图上任一位置单击后,用鼠标在图上任一位置单击后,stringstring即显示在其上。即显示在其上。需要注意的是,需要注意的是,g

温馨提示

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

评论

0/150

提交评论