您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第三讲 MATLAB数据和函数的可视化
第三讲数据和函数的可视化第三讲数据和函数的可视化数据可视化的目的:通过图形,从一堆杂乱的离散数据中观察数据间的内在关系感受由图形所传递的内在本质第三讲数据和函数的可视化3.1引导3.2二维曲线绘图3.3三维绘图的基本操作3.1引导3.1.1离散数据和离散函数的可视化3.1.2连续函数的可视化3.1.3可视化的一般步骤3.1.1离散数据和离散函数的可视化二元实数标量对(x,y)可以用平面上一个点表示二元实数向量对(x,y)可以用平面上一组点表示对于离散实函数y=f(x),取x为递增序列,求出对应的y序列,组成二元向量对。用直角坐标中的点序列表示,即离散函数的可视化3.1.1离散数据和离散函数的可视化用图形表示离散函数n=0:12;%产生一组自变量数据y=1./abs(n-6);%计算相应点的函数值plot(n,y,'r*','MarkerSize',20)%用红花标出数据点gridon%画坐标方格1)6(ny3.1.1离散数据和离散函数的可视化0246810120.10.20.30.40.50.60.70.80.913.1.2连续函数的可视化连续函数的可视化也必须建立在离散数据上为表现连续性,常用的处理方法:–对区间进行更细的分割,计算更多的点–两点之间用直线连接,近似表现注意:自变量的采样点数应足够多,如采样点数不足不能真实地反映原函数。3.1.2连续函数的可视化用图形表示连续调制波形t1=(0:11)/11*pi;%在0~pi之间取11个采样点y1=sin(t1).*sin(9*t1);t2=(0:100)/100*pi;%在0~pi之间取101个采样点y2=sin(t2).*sin(9*t2);subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图(1)'))9sin()sin(tty3.1.2连续函数的可视化subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图(2)')subplot(2,2,3),plot(t1,y1,t1,y1,'r.')axis([0,pi,-1,1]),title('子图(3)')subplot(2,2,4),plot(t2,y2)axis([0,pi,-1,1]),title('子图(4)')3.1.2连续函数的可视化0123-1-0.500.51子子(1)0123-1-0.500.51子子(2)0123-1-0.500.51子子(3)0123-1-0.500.51子子(4)3.1.2连续函数的可视化用数据点来表现连续函数,描述能力差子图1、3的失真大,因为采样点的个数太少plot指令的默认处理方法:把离散数据点用直线连接成为连续曲线3.1.3可视化的一般步骤1.数据准备2.选定图形窗及子图位置3.调用绘图指令4.设置轴的范围和坐标方格线5.图形注释6.着色、明暗、灯光、材质处理(三维图形)3.2二维曲线绘图最重要、最基本的指令是plot3.2.1plot的调用格式3.2.2曲线的颜色、线型和数据点形3.2.3坐标、刻度和分格线3.2.4图形标识3.2.5多次叠绘和多子图3.2.6交互式图形指令3.2.1plot的调用格式1.plot(X,’s’)X为实向量——一条连续曲线(下标为横坐标,元素值为纵坐标)X为实矩阵——一组曲线(按列绘制每列元素值相对其下标的曲线,曲线数=列数)X为复矩阵——一组曲线(按列分别以实部为横坐标,虚部为纵坐标,曲线数=列数)s字符串指定线型、颜色和数据点形,可缺省3.2.1plot的调用格式2.plot(X,Y,’s’)XY为同长向量——一条曲线(X横,Y纵)X为向量,Y为矩阵且有一维与X等长——多条不同颜色的曲线(X为共同的横坐标)X为矩阵,Y为向量——多条不同颜色的曲线(Y为共同的纵坐标)XY同维矩阵——X、Y对应列为横、纵坐标(曲线的条数等于矩阵的列数)3.2.1plot的调用格式3.plot(X1,Y1,’s1’,X2,Y2,’s2’,…)绘制多组曲线,每组格式与上一格式相同3.2.1plot的调用格式plot指令演示t=(0:pi/50:2*pi)’;%101×1的列向量k=0.4:0.1:1;%1×7的行向量Y=cos(t)*k;%101×7的矩阵plot(t,Y)%绘图plot(t),plot(Y),plot(Y,t)3.2.1plot的调用格式01234567-1-0.8-0.6-0.4-0.200.20.40.60.813.2.1plot的调用格式【例6.2-2】用图形表示连续调制波形及其包络线。(图6.2-2)t=(0:pi/100:pi)';y1=sin(t)*[1,-1];y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])3.2.1plot的调用格式00.511.522.53-1-0.8-0.6-0.4-0.200.20.40.60.813.2.1plot的调用格式采用模型画一组椭圆th=[0:pi/50:2*pi]';%长度为101的列向量a=[0.5:.5:4.5];%长度为9的行向量X=cos(th)*a;%(101x9)的矩阵Y=sin(th)*sqrt(25-a.^2);%(101x9)的矩阵plot(X,Y),axis(‘equal’),%是坐标轴等长刻度xlabel(‘x’),ylabel(‘y’)%书写坐标名title(‘AsetofEllipses’)%书写图名1252222ayax3.2.1plot的调用格式-6-4-20246-4-3-2-101234xyAsetofEllipses3.2.2曲线的颜色、线型和数据点形1.颜色和线型b—蓝g—绿r—红c—青m—品红y—黄k—黑w—白-—实线:—虚线-.—点划线--—双划线3.2.2曲线的颜色、线型和数据点形2.数据点形.—实心黑点+—十字符*—星号^—向上三角—向左三角—向右三角v—向下三角d—菱形h—六角星o—空心圆p—五角星s—方块x—叉号3.2.3坐标、刻度和分格线MATLAB一方面采用一系列缺省设置,所以通常我们不需要控制细节就可以画出满意的图形另一方面提供高层指令修改缺省设置,使图形更符合用户的习惯和爱好3.2.3坐标、刻度和分格线1.坐标控制axisauto使用缺省设置axisoff取消轴背景axis(V)人工设定坐标范围V=[x1,x2,y1,y2,z1,z2]V=[-4,4,-1,3]axisnormal缺省矩形坐标系axisequal横、纵轴等长刻度axissquare产生正方形坐标系axisimage横、纵轴等长刻度,且坐标紧贴数据范围axistight把数据范围直接设为坐标范围3.2.3坐标、刻度和分格线【例6.2-4】观察各种轴控制指令的影响。演示采用长轴为3.25,短轴为1.15的椭圆。注意:采用多子图(图6.2-4)表现时,图形形状不仅受“控制指令”影响,而且受整个图面“宽高比”及“子图数目”的影响。t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);subplot(2,3,1),plot(x,y),axisnormal,gridon,title('NormalandGridon')subplot(2,3,2),plot(x,y),axisequal,gridon,title('Equal')subplot(2,3,3),plot(x,y),axissquare,gridon,title('Square')subplot(2,3,4),plot(x,y),axisimage,boxoff,title('ImageandBoxoff')subplot(2,3,5),plot(x,y),axisimagefill,boxofftitle('ImageandFill')subplot(2,3,6),plot(x,y),axistight,boxoff,title('Tight')3.2.3坐标、刻度和分格线-202-4-2024NormalandGridon-202-202Equal-202-4-2024Square-101-202ImageandBoxoff-101-1-0.500.51ImageandFill-101-202Tight3.2.3坐标、刻度和分格线2.分格线和坐标框gridon/off画出/不画分格线grid切换(状态翻转)boxon/off使当前坐标呈封闭式/开启式box切换(状态翻转)缺省设置为不画分格线、封闭式3.2.4图形标识图形标识包括:图名(Title)、坐标轴名(Label)、图形注释(Text)和图例(Legend)它们的最简格式:title(‘s’)书写图名xlabel(‘s’)横坐标轴名ylabel(‘s’)纵坐标轴名legend(‘s1’,’s2’,…)线型、颜色、数据点的图例text(x,y,’s’)在图形(x,y)坐标处标注释Clf;t=0:pi/50:2*piy=sin(t);plot(t,y)axis([0,2*pi,-1.2,1.2])text(pi/2,1,’/fontsize{16}/leftarrow/itsin(t)/fontname{隶书}极大值‘)title(‘y=sin(t)’)xlabel(‘t’)ylabel(‘sin(t)’)3.2.5多次叠绘和多子图1.多次叠绘在已经存在的图上再绘制一条或多条曲线holdon保持图形和坐标轴,准备绘制新曲线holdoff取消叠绘hold在两种状态间切换注意成对使用,否则会影响其他图形的绘制3.2.5多次叠绘和多子图利用hold绘制离散信号通过零阶保持器后产生的波形t=2*pi*(0:20)/20;y=cos(t).*exp(-0.4*t);stem(t,y,‘g’);%绘制离散信号火柴杆图holdon;stairs(t,y,‘r’);%绘制阶梯形曲线图holdoff3.2.5多次叠绘和多子图01234567-0.4-0.200.20.40.60.813.2.5多次叠绘和多子图2.双纵坐标图把同一自变量的两个不同量纲、不同数量级的函数量的变化绘制在同一张图上。plotyy(X1,Y1,X2,Y2)以左右不同纵轴绘制两条曲线plotyy(X1,Y1,X2,Y2,FUN)以左右不同纵轴绘制成FUN指定形式的两条曲线plotyy(X1,Y1,X2,Y2,FUN1,FUN2)以左右不同纵轴绘制成FUN1、FUN2指定的不同形式的两条曲线FUN、FUN1、FUN2是二维绘图命令。3.2.5多次叠绘和多子图3.多子图在一个图形窗里布置几幅独立的子图subplot(m,n,k)选择m×n幅子图中的第k幅为当前子图子图顺序:左上为1,向右向下编号子图间独立,所有绘图指令可在子图中运用再想画整幅图,先用clf指令subplot(‘position’,[leftbottomwidthheight])产生子图位置由人工指定.3.2.5多次叠绘和多子图演示subplot指令对图形窗的分割clf;t=(pi*(0:1000)/1000)';y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis([0,pi,-1,1])3.2.5多次叠绘和多子图subplot(2,2,2),plot(t,y2);axis([0,pi,-1,1])subplot('position',[0.2,0.05,0.6,0.45])%plot(t,y12,'b-',t,[y1,-y1],'r:');axis([0,pi,-1,1])
本文标题:第三讲 MATLAB数据和函数的可视化
链接地址:https://www.777doc.com/doc-3364296 .html