1、12/26/20221数据和函数的可视化数据和函数的可视化 12/26/2022Matlab Language2引言引言n世界顶级的数值计算工具软件世界顶级的数值计算工具软件MATLAB具有极其强大具有极其强大的的数据可视化数据可视化功能,可制作具有出版质量图形。功能,可制作具有出版质量图形。n在前面的课程中,已经使用了在前面的课程中,已经使用了数据可视化命令数据可视化命令plot。n详细介绍详细介绍MATLAB这一部分的内容可以写一本书。这一部分的内容可以写一本书。n我们只能介绍我们只能介绍MATLAB数据可视化的基础,数据可视化的基础,2-D数据数据可视化、可视化、3-D数据可视化初步。数
2、据可视化初步。n二维图形是将平面坐标上的数据点连接起来的平面图二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用直角坐标系、对数坐标、极坐标等形式。形。可以采用直角坐标系、对数坐标、极坐标等形式。数据点可以用向量或矩阵形式给出,类型可以是实型数据点可以用向量或矩阵形式给出,类型可以是实型或复型。或复型。12/26/2022Matlab Language33.1 二维曲线绘图的基本操作二维曲线绘图的基本操作nplot指令的基本调用格式指令的基本调用格式(1)plot(x)nx为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线n
3、x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。数组的列数。nx为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线线(2)plot(x,y)nx、y为同维数组时,绘制以为同维数组时,绘制以x、y元素为横纵坐标的曲线元素为横纵坐标的曲线nx为向量,为向量,y为二维数组、且其列数或行数等于为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的元素数时,绘制多条不同颜色的曲线的曲线nx为二维数组,为二维数组
4、,y为向量时,情况与上相同,只是为向量时,情况与上相同,只是y仍为纵坐标。仍为纵坐标。(3)plot(x1,y1,x2,y2,)n绘制以绘制以x1为横坐标、为横坐标、y1为纵坐标的曲线为纵坐标的曲线1,以,以x2为横坐标、为横坐标、y2为纵坐标的曲线为纵坐标的曲线2,等等。等等。n其中其中x为横坐标,为横坐标,y为纵坐标,绘制为纵坐标,绘制y=f(x)函数曲线。函数曲线。12/26/2022Matlab Language4例例3.1使用直角坐标系使用直角坐标系在在0,2区间内,绘制曲线区间内,绘制曲线x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);pl
5、ot(x,y)NoImageNoImage 12/26/2022Matlab Language5例例3.2 使用参数方程绘制曲线使用参数方程绘制曲线绘制曲线绘制曲线t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).2;plot(x,y)NoImageNoImage 12/26/2022Matlab Language6绘制图形的辅助操作绘制图形的辅助操作 曲线线形控制符曲线线形控制符 曲线颜色控制符曲线颜色控制符 符号-:-.-含义 实线 虚线 点划线 双划线 符号 b g rcmykw含义兰绿红青品红黄黑白 12/26/2022Matlab Language7
6、曲线的色彩、线型和曲线的色彩、线型和 数据点形数据点形axis off-101-202axis image-4-2024-202axis Equal-202-4-2024axis Square曲线的曲线的线形控制符、颜色控制符、数据点形控制符线形控制符、颜色控制符、数据点形控制符可以组可以组合使用合使用其先后次序不影响绘图结果其先后次序不影响绘图结果也可以单独使用。也可以单独使用。12/26/2022Matlab Language8例例3.9 绘制图形的辅助操作绘制图形的辅助操作Specify Line properties t=(0:15)*2*pi/15;y=sin(t);subplot(
7、3,2,1),plot(t,y);title(Lins style is default)subplot(3,2,2),plot(t,y,o);title(Lins style is o)subplot(3,2,3),plot(t,y,k:);title(Lins style is k:)subplot(3,2,4),plot(t,y,k:*);title(Lins style is k:*)subplot(3,2,5),plot(t,y,m-d);title(Lins style is m-d)subplot(3,2,6),plot(t,y,r-p);title(Lins style is
8、r-p)12/26/2022Matlab Language9 12/26/2022Matlab Language10坐标、刻度和分格线控制坐标、刻度和分格线控制 12/26/2022Matlab Language11例例 3.10 坐标控制坐标控制 绘制椭圆,长轴为绘制椭圆,长轴为3.25,短轴为,短轴为1.15t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);%y为长轴,为长轴,x为短轴为短轴subplot(2,2,1);plot(x,y);axis offtitle(axis off);subplot(2,2,2);plot(x,y);axis im
9、age;title(axis image);subplot(2,2,3);plot(x,y);axis equal;title(axis Equal);subplot(2,2,4);plot(x,y);axis square;title(axis Square);12/26/2022Matlab Language12 12/26/2022Matlab Language13刻度、分格线和坐标框刻度、分格线和坐标框 n分格线与分格线与grid指令指令 ngrid on画出分格线画出分格线ngrid off不画分格线不画分格线nMATLAB的的缺省设置是不画分格线;缺省设置是不画分格线;分格线的疏密
10、取决于坐标刻分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。度(改变坐标刻度,可改变分格线的疏密)。n坐标框坐标框nbox on控制加边框线控制加边框线nbox off 控制不加边框线控制不加边框线n刻度设置刻度设置n指令及格式:指令及格式:set(gca,xtick,xs,ytick,ys)nxs、ys可以使任何合法的实数向量,用于分别设置可以使任何合法的实数向量,用于分别设置x、y轴的刻度。轴的刻度。12/26/2022Matlab Language14图形标识图形标识 n图形标识包括:图形标识包括:n图名(图名(title)n坐标轴名(坐标轴名(xlabel、ylabel
11、)n图形文本注释(图形文本注释(text)n图例(图例(legend)n简捷使用格式简捷使用格式 ntitle(s)%s为字符串变量或常量为字符串变量或常量nxlabel(s)nylabel(s)nlegend(s)ntext(x,y,s)%指定坐标(指定坐标(x,y)处加注文字)处加注文字 12/26/2022Matlab Language15图形标识图形标识(续)(续)n精细指令形式精细指令形式 n字体样式设置:字体样式设置:fontnamearg arg fontsize arg string 其中,其中,String为要输出的字符串,其前面的均为为要输出的字符串,其前面的均为属性控制属
12、性控制,使,使用方法见下表。用方法见下表。12/26/2022Matlab Language16图形标识图形标识(续)(续)12/26/2022Matlab Language17例例3.12在正弦曲线上标注特殊值在正弦曲线上标注特殊值t=(0:100)/100*2*pi;y=sin(t);plot(t,y)text(3*pi/4,sin(3*pi/4),fontsize16leftarrowsin(t)=.707)text(pi,sin(pi),fontsize16leftarrowsin(t)=0)text(5*pi/4,sin(5*pi/4),fontsize16sin(t)=-.707r
13、ightarrow,.HorizontalAlignment,right)其中,其中,HorizontalAlignment,right设置图形标识为水平右对设置图形标识为水平右对齐齐 12/26/2022Matlab Language182.特殊图形特殊图形n直方图直方图(柱形图柱形图)barn垂直直方图垂直直方图累计式累计式分组式分组式n水平直方图水平直方图累计式累计式分组式分组式 12/26/2022Matlab Language19例例3.15x=-2.9:0.2:2.9;bar(x,exp(-x.*x),r)12/26/2022Matlab Language20例例3.16n北京市从
14、业人员统计北京市从业人员统计1990年年1995年年2000年年第一产业第一产业 90.770.673.9(万人)(万人)第二产业第二产业 281.6 271 214.6第三产业第三产业 254.8 323.7 326.5执行以下语句:执行以下语句:year=1990 1995 2000;people=90.7 281.6 254.8;70.6 271 323.7;73.9 214.6 326.5;bar(year,people,stack);legend(fontsize6第一产业第一产业,fontsize6第二产业第二产业,fontsize6第三产业第三产业);12/26/2022Matl
15、ab Language21累计式直方图累计式直方图 12/26/2022Matlab Language22bar(year,people,group);%分组式直方图分组式直方图legend(fontsize6第一产业第一产业,fontsize6第二产业第二产业,fontsize6第第三产业三产业);12/26/2022Matlab Language23barh(year,people,group);%分组式直方图分组式直方图legend(fontsize6first,fontsize6second,fontsize6third);-1-0.500.51-1-0.500.51-1-0.500.
16、51 12/26/2022Matlab Language24barh(year,people,stack);%累积式直方图累积式直方图legend(fontsize6 first,fontsize6second,fontsize6third);12/26/2022Matlab Language25饼图指令饼图指令pie n饼图指令饼图指令pie 用来用来表示各元素占总和的百分数表示各元素占总和的百分数。该指令第二。该指令第二输入变量是与第一变量同长的输入变量是与第一变量同长的0-1向量,向量,1使对应扇块突出。使对应扇块突出。a=1,1.6,1.2,0.8,2.1;subplot(1,2,1)
17、,pie(a,1 0 1 0 0),legend(1,2,3,4,5)subplot(1,2,2),b=int8(a=min(a)pie3(a,b)colormap(cool)12/26/2022Matlab Language26 12/26/2022Matlab Language27离散杆图离散杆图stem 余弦波的采样信号图余弦波的采样信号图t=linspace(-2*pi,2*pi,20);h=stem(t,cos(t);12/26/2022Matlab Language283.三维绘图的基本操作三维绘图的基本操作n三维线图指令三维线图指令plot3n三维绘图指令中,三维绘图指令中,plot3最易于理解,它的使用格式与最易于理解,它的使用格式与plot十十分相似,只是对应第分相似,只是对应第3 维空间的参量。维空间的参量。t=(0:0.02:2)*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z,b-,x,y,z,bd);view(-82,58);box onlegend(链链,宝石宝石)12/26/2022Matlab Language29三维线图绘制结果三维线图绘制结果