matlab绘图详解
- 格式:pdf
- 大小:283.61 KB
- 文档页数:9
一、二维数据曲线图1、MATLAB 最常用的画二维图形的命令是plot, plor 函数的基本调用格式为:plot(x.y)其 中x 和y 为长度相同的向豈,分别用于存储x 坐标和y 坐标数据。
例 1:在[0,2 7T ]画 Sill(.v) 0生成的图形如下图1所示:图1说明:(1) plot 函数的输入参数是矩阵形式时A 、 当x 是向量,y 是有一维与x 同维的矩阵时,则绘制出多根不同颜色的曲线。
曲线 条数等于y 矩阵的另一维数,x 被作为这些曲线共同的横坐标。
B 、 当x,y 是同维矩阵时.则以x,y 对应列元素为横、纵坐标分别绘制曲线,曲线条数 等于矩阵的列数。
C 、对只包含一个输入参数的plot 函数,当输入参数是实矩阵时,则按列绘制每列元素 值相对其卜.标的曲线,曲线条数等于输入参数矩阵的列数:当输入参数是复数矩阵时,则按 列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
(2) 含多个输入参数的plot 函数 调用格式为:plot(xl,yl.x2,y2,"--.xn.yn)A, 当输入参数都为向量时,xl 和yl, x2和y2, xn 和yn 分别组成一组向量对,每一 组向量对的长度可以不同。
每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制岀 多条曲线。
B.当输入参数有矩阵形式时,配对的x_y 按对应列兀素为横、纵坐标分别绘制曲线,曲线 条数等于矩阵的列数。
例2:如卜所示的程序:x 1 =liuspace(0,2 *pi,l 00);x2=luispace(0.3 *pi,l 00);x3=linspace(0.4*pi,100);yl=sin(xl); y2=l+sin(x2);y3=2+sin(x3);x=[xl;x2;x3]';0.80.60.40.2-0.2-0.4-0.6-0.8y=[yl;y2;y3「plot(x,y,xl,yl-l) 其图形如图2所示:图2(3)plot函数最简单的调用格式是只包含一个输入参数:plot(x),在这种情况卜,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一•条连续曲线,这实际上是绘制折线图。
Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础.一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 ,2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令〉〉x=0:pi/100:2*pi;>〉y=2*exp(-0。
5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:〉〉t=-pi:pi/100:pi;〉> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>〉plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
MATLAB中绘图命令介绍本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制。
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x 及y座标。
下例可画出一条正弦曲线:close all;x=linspace(0, 2*pi, 100); % 100个点的x坐标y=sin(x); % 对应的y坐标plot(x,y);小整理:MATLAB基本绘图函数plot: x轴与y轴均为线性刻度(Linear scale)loglog: x轴与y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度若要画出多条曲线,只需将座标对依次放入plot函数即可:hold on 保持当前图形,以便继续画图到当前坐标窗口hold off 释放当前图形窗口title(’图形名称’)(都放在单引号内)xlabel(’x轴说明’)ylabel(’y轴说明’)text(x,y,’图形说明’)legend(’图例1’,’图例2’,…)plot(x, sin(x), x, cos(x));若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), 'c', x, cos(x), 'g');若要同时改变颜色及图线型态,也是在座标对後面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');小整理:plot绘图函数的叁数字元、颜色元、图线型态,y 黄色 .点k 黑色o 圆w 白色x xb 蓝色++g 绿色* *r 红色- 实线c 亮青色: 点线m锰紫色-. 点虚线-- 虚线plot3 三维曲线作图图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]);axis函数的功能丰富,其常用的用法有:axis equal :纵横坐标轴采用等长刻度axis square:产生正方形坐标系(默认为矩形)axis auto:使用默认设置axis off:取消坐标轴axis on :显示坐标轴此外,MATLAB也可对图形加上各种注解与处理:xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线我们可用subplot来同时画出数个小图形於同一个视窗之中:subplot(2,2,1); plot(x, sin(x));subplot(2,2,2); plot(x, cos(x));subplot(2,2,3); plot(x, sinh(x));subplot(2,2,4); plot(x, cosh(x));MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
matlab绘图知识点总结一、Matlab基本绘图函数1. plot函数plot函数是Matlab中最基本的绘图函数之一,用于绘制二维图表。
其基本语法为:plot(x, y)。
其中x是横轴坐标数据,y是纵轴坐标数据。
通过plot函数可以绘制折线图、散点图等。
2. bar函数bar函数用于绘制条形图,其基本语法为:bar(x, y)。
其中x是条形的横轴坐标位置,y是条形的高度。
3. pie函数pie函数用于绘制饼图,其基本语法为:pie(x, labels)。
其中x是用来指定各个扇形区域的大小的矩阵,labels则是用来指定每个扇形区域的标签。
4. hist函数hist函数用于绘制直方图,其基本语法为:hist(x, bins)。
其中x是待绘制的数据,bins则是用来指定直方图的条形数目。
5. scatter函数scatter函数用于绘制散点图,其基本语法为:scatter(x, y)。
其中x和y分别是散点的横轴和纵轴坐标数据。
6. contour函数contour函数用于绘制等高线图,其基本语法为:contour(x, y, z)。
其中x和y分别是网格的横轴和纵轴坐标,z则是用来指定等高线的数值。
二、自定义图形1. 设置标题、标签和图例在Matlab中,可以使用title、xlabel、ylabel和legend等函数分别设置图表的标题、横轴和纵轴标签以及图例。
2. 设置图表样式可以使用line属性、marker属性以及color属性等来设置折线图、散点图等的样式。
3. 修改图表坐标轴可以使用xlim、ylim函数来设置图表的横轴和纵轴范围,并使用xticks和yticks函数来设置坐标刻度。
4. 绘制多个数据集可以使用hold on函数来绘制多个数据集,并使用hold off函数来结束绘制多个图表。
5. 设置图表背景可以使用grid、box、axis equal等函数来设置图表的背景。
三、子图表绘制1. subplot函数subplot函数用于在一个图形窗口中绘制多个子图表,其基本语法为:subplot(m,n,p)。
一.二维图形(Two dimensional plotting)1.基本绘图函数(Basic plotting function):Plot,semilogx,semilogy,loglog,polar,plotyy (1).单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。
例1:单矢量绘图y=[00.62.358.311.71517.719.420];plot(y)可以在图形中加标注和网格,例2:给例1的图形加网格和标注。
y=[00.62.358.311.71517.719.420];plot(y)title('简单绘图举例');xlabel('单元下标');ylabel('给定的矢量');grid(2).双矢量绘图(Double vector plotting):如x和y是同样长度的矢量,plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。
例:双矢量绘图。
x=0:0.05:4*pi;y=sin(x);plot(x,y)(3).对数坐标绘图(ploting in logarithm coordinate):x轴对数semilogx,y轴对数semilogy,双对数loglog,例:绘制数组y的线性坐标图和三种对数坐标图。
y=[00.62.358.311.71517.719.420];subplot(2,2,1);plot(y);subplot(2,2,2);semilogx(y)subplot(2,2,3);semilogy(y);subplot(2,2,4);loglog(y)(4)极坐标绘图(Plotting in polar coordinate):polar(theta,rho)theta—角度,rho—半径例:建立简单的极坐标图形。
t=0:.01:2*pi;polar(t,sin(2*t).*cos(2*t))2.多重曲线绘图(Multiple curve plotting)(1)一组变量绘图(A group variable plotting)plot(x,y)(a)x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。
例1:x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y)(b)x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。
例2:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y=sin(x(1,:));plot(x,y)(c)x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。
例3:x(:,1)=[0:pi/50:2*pi]';x(:,2)=[pi/4:pi/50:2*pi+pi/4]';x(:,3)=[pi/2:pi/50:2*pi+pi/2]'; y(:,1)=sin(x(:,1));y(:,2)=0.6*sin(x(:,1));y(:,3)=0.3*sin(x(:,1));plot(x,y)这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。
如行列转置后就会画出101条曲线,每条线由三点组成。
x(1,:)=[0:pi/50:2*pi];x(2,:)=[pi/4:pi/50:2*pi+pi/4];x(3,:)=[pi/2:pi/50:2*pi+pi/2];y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(1,:));y(3,:)=0.3*sin(x(1,:));plot(x,y)(d)如果y是矩阵,则plot(y)绘出y中各列相对于行号的图形,对于n行矩阵,x轴的坐标为[1:n]。
(2)多组变量绘图(Multiple group variables plotting):对于一系列相应的矩阵yi和xi,可以使用多组变量绘图法:plot(x1,y1,x2,y2,…,xn,yn),这种方法的优点是允许将不同大小的矩阵或矢量的图形绘制在一张图上。
例:多组变量绘图。
x=0:pi/50:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,x,y3)(3)双y轴绘图:plotyy,在一个图形窗口绘制两组数据曲线,共用一个x轴,图形两边各有一个y轴。
两条图线可以调用不同的绘图方法。
例1:x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')左侧y轴对应plot形式的绘图,右侧y轴对应stem形式的曲线。
例2:对于y坐标不同的情况。
t=0:900;A=1000;a=0.005;b=0.005;z1=A*exp(-a*t);z2=sin(b*t);plotyy(t,z1,t,z2,'semilogy','plot')3.图线形式和颜色(Style and color of plot)(1)图线的形式:(style of plot)MATLAB提供的四种线形,实线虚线--,冒号线:,点划线--.标记点类型:.,+,*,o,×,s(或square),d(或diamond),△,▽,<,>,p(或pentagram),h(或hexagram),plot(x,y,’—‘),plot(x1,y1,’:’,x2,y2,’*’)例1:选择不同的线形绘图。
t=0:pi/100:2*pi;y=sin(t);y2=sin(t-0.25);y3=sin(t-0.5);plot(t,y,'-',t,y2,'-',t,y3,':')例2:选择不同的标记点绘图。
t=0:pi/20:2*pi;x=t.^3;y=sin(t);plot(x,y,'o')(2)线的颜色(color of plot):MATLAB中可选的颜色:红r,绿g,蓝b,黄y,粉红m,青c(cyan)黑k.例:t=0:pi/20:2*pi;y=sin(t);plot(x,y,'r'),plot(x,y,'g+')(3)图线的其他属性(other characters of plot):可设置图线的宽度、标记点的边缘颜色、填充颜色、标记点的大小等。
例:设置图线的线形、颜色、宽度、标记点的颜色及大小。
t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','y','MarkerSize',10) 4.复数绘图(Complex plotting):plot用于函数绘制复数的图形时,通常虚部是被忽略的。
但plot只作用于单个复变量z时,则绘出的是实部对虚部的关系图(复平面上的一组点)。
即这时plot(z)等价于plot(real(z)).例:画一个20边的多边形(用exp函数生成),顶角用小圆圈表示。
t=0:pi/10:2*pi;plot(exp(i*t),'o');axis('square')如果在复平面绘制多重线,只能分别以实部和虚部为坐标来绘制,否则虚部将被忽略,并给出警告。
二.图形的控制与表现(Figure control and representation)MATLAB提供的用于图形控制的函数和命令:axis:人工选择坐标轴尺寸.clf:清图形窗口.ginput:利用鼠标的十字准线输入.hold:保持图形.shg:显示图形窗口.subplot:将图形窗口分成N块子窗口。
1.图形窗口(figure window)(1).图形窗口的创建和选择(Creating and selecting of figure window)figure(n)函数用于为当前的绘图创建图形窗口,每运行一次figure就会创建一个新的图形窗口,n表示第个n窗口,如果窗口定义了句柄,也可以用figure(h)将句柄h的窗口作为当前窗口。
clf命令用于清除当前图形窗口中的内容。
shg命令用于显示当前图形窗口。
(2).在一个图形窗口中绘制多个子图形(Drawing several subfigures in a single window) subplot(m,n,p),把窗口分成m×n个小窗口,并把第p个窗口当作当前窗口。
例:将4个图形显示在同一个图形窗口中。
t=0:pi/20:2*pi;[x,y]=meshgrid(t);subplot(2,2,1);plot(sin(t),cos(t));axis equalsubplot(2,2,2);z=sin(x)+cos(y);plot(t,z);axis([02*pi–22])subplot(2,2,3);z=sin(x).*cos(y);plot(t,z);axis([02*pi–11])subplot(2,2,4);z=sin(x).^2-cos(y).^2;plot(t,z);axis([02*pi–11])(3).在一个已有的图形上绘图(Drawing a figure on the figure was existed):用hold on命令在一个已有的图形上继续绘图,使用hold off命令结束继续绘图。
例:将peaks函数的等高线图与伪彩色画在一起。
[x,y,z]=peaks;%产生双变量数组contour(x,y,z,20,'k')%绘制等高线hold onpcolor(x,y,z)%绘制伪彩色图shading interp%表面色彩渲染hold off2.坐标轴控制命令(Axis control commands)控制坐标性质的axis函数的多种调用格式:axis(xmin xmax ymin ymax):指定二维图形x和y轴的刻度范围,axis auto设置坐标轴为自动刻度(缺省值)axis manual(或axis(axis))保持刻度不随数据的大小而变化axis tight以数据的大小为坐标轴的范围axis ij设置坐标轴的原点在左上角,i为纵坐标,j为横坐标axis xy使坐标轴回到直角坐标系axis equal使坐标轴刻度增量相同axis square使各坐标轴长度相同,但刻度增量未必相同axis normal自动调节轴与数据的外表比例,使其他设置失效axis off使坐标轴消隐axis on显现坐标轴(1)坐标轴的范围(Domain of coordinates axis):二维图形坐标轴范围在缺省状态下是根据数据的大小自动设置的,如欲改变,可利用axis(xmin xmax ymin ymax),函数来定义。