《第四讲绘图精选文档.ppt》由会员分享,可在线阅读,更多相关《第四讲绘图精选文档.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四讲绘图本讲稿第一页,共八十七页matlab语言的绘图功能 不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力句柄绘图方法。在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。本讲稿第二页,共八十七页一、二维绘图(一)plot 最基本的二维图形指令plot的功能:plot命令自动打开一个图形窗口Figure 用直线连接相邻两数据点来绘制图形根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,y 轴用对数坐标表示本讲稿第三页,共八十七页如果已经存在一个图形窗口,plo
2、t命令则清除当前图形,绘制新图形可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图可任意设定曲线颜色和线型可给图形加坐标网线和图形加注功能本讲稿第四页,共八十七页plot的调用格式 plot(x)缺省自变量绘图格式,x为向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图 plot(x,y)基本格式,以y(x)的函数关系作出直角坐标图,如果y为nm的矩阵,则以x 为自变量,作出m条曲线plot(x1,y1,x2,y2)多条曲线绘图格式 本讲稿第五页,共八十七页plot(x,y,s)开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前13个字母,如 yel
3、lowyel表示等。或plot(x1,y1,s1,x2,y2,s2,)本讲稿第六页,共八十七页S的标准设定值如下:字母 颜色 标点 线型 y 黄色 点线 m 粉红 圈线 c 亮蓝 线 r 大红 字线 g 绿色 实线 b 蓝色 星形线 w 白色 :虚线 k 黑色 (-)点划线本讲稿第七页,共八十七页matlab6.1线形:+|o|*|.|x|square|diamond|v|pentagram|hexagram square 正方形 diamond 菱形 pentagram 五角星 hexagram 六角星本讲稿第八页,共八十七页1.单窗口单曲线绘图例1:x=0,0.48,0.84,1,0.91
4、,0.6,0.14 x1,x2,x3,x4,x5,x6,x7,plot(x)本讲稿第九页,共八十七页2.单窗口多曲线绘图例2:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)yy1y2本讲稿第十页,共八十七页例 3:y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y,y1,y2,y3,y4,y5)本讲稿第十一页,共八十七页y3=cos(t);y4=cos(t+0.25);y5=c
5、os(t+0.5);plot(t,y3);hold on;plot(t,y4);plot(t,y5);本讲稿第十二页,共八十七页x=peaks;plot(x)x=1:length(peaks);y=peaks;plot(x,y)本讲稿第十三页,共八十七页3.单窗口多曲线分图绘图subplot 子图分割命令调用格式:subplot(m,n,p)按从左至右,从上至下排列 行列绘图序号本讲稿第十四页,共八十七页subplot(1,3,1);plot(t,y)subplot(1,3,2);plot(t,y3)subplot(1,3,3);plot(t,y2)本讲稿第十五页,共八十七页subplot(3
6、,1,1);plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2)本讲稿第十六页,共八十七页subplot(position,left bottom width height)本讲稿第十七页,共八十七页4.多窗口绘图 figure(n)创建窗口函数,n为窗 口顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)自动出现第一个窗口figure(2)plot(t,y1)在第二窗口绘图figure(3)plot(t,y2)在第三窗口绘图本讲稿第十八页,共八
7、十七页本讲稿第十九页,共八十七页5.可任意设置颜色与线型例 4(例2):plot(t,y,r-,t,y1,g:,t,y2,b*)本讲稿第二十页,共八十七页6.图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 将标注加到图形任意位置 grid on(off)打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度本讲稿第二十一页,共八十七页例:t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,r,t,y
8、2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t);text(x,y,s);title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxis square本讲稿第二十二页,共八十七页246810时间t本讲稿第二十三页,共八十七页本讲稿第二十四页,共八十七页 axis的用法还有:axis(xmin xmax ymin ymax)用行向量中 给出的值设定坐标轴的最大和最小值。如axis(-2 2 0 5)axis(equal)将两坐标轴设为相等 axis on(off)显示和关闭坐标轴的标 记、
9、标志 axis auto 将坐标轴设置返回自动缺 省值本讲稿第二十五页,共八十七页7.fplot 绘制函数图函数fplot的调用格式:fplot(fun,lims)绘制函数fun在x区间 lims=xmin xmax的函数图。fplot(fun,lims,corline)以指定线形绘图。x,y=fplot(fun,lims)只返回绘图点的值,而不绘图。用plot(x,y)来绘图。本讲稿第二十六页,共八十七页fplot(sin(x),tan(x),cos(x),2*pi*-1 1-1 1)fplot(humps,0 1,rp)本讲稿第二十七页,共八十七页8.ezplot 符号函数的简易绘图函数e
10、zplot的调用格式:ezplot(f)这里f为包含单个符号变量x的符号表达式,在x轴的默认范围 -2*pi 2*pi内绘制f(x)的函数图ezplot(f,xmin,xmax)给定区间ezplot(f,xmin,xmax,figure(n)指定绘图窗口绘图。本讲稿第二十八页,共八十七页ezplot(sin(x)ezplot(sin(x),cos(y),-4*pi 4*pi,figure(2)本讲稿第二十九页,共八十七页(二)fill 基本二维绘图函数 fill的功能:绘制二维多边形并填充颜色例:x=1 2 3 4 5;y=4 1 5 1 4;fill(x,y,r)本讲稿第三十页,共八十七页(
11、三)特殊二维绘图函数 bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 stairs 绘制阶梯图 stem 绘制火柴杆图 rose 绘制统计扇形图 comet 绘制彗星曲线本讲稿第三十一页,共八十七页 errorbar 绘制误差棒图 compass 复数向量图(罗盘图)feather 复数向量投影图(羽毛图)quiver 向量场图 area 区域图 pie 饼图 convhull 凸壳图 scatter 离散点图本讲稿第三十二页,共八十七页例,绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y)本讲稿第三十三页,共八十七页例:阶梯绘图h2=1
12、 1;1-1;h4=h2 h2;h2-h2;h8=h4 h4;h4-h4;t=1:8;subplot(8,1,1);stairs(t,h8(1,:);axis(off)subplot(8,1,2);stairs(t,h8(2,:);axis(off)subplot(8,1,3);stairs(t,h8(3,:);axis(off)subplot(8,1,4);stairs(t,h8(4,:);axis(off)subplot(8,1,5);stairs(t,h8(5,:);axis(off)subplot(8,1,6);stairs(t,h8(6,:);axis(off)subplot(8,1
13、,7);stairs(t,h8(7,:);axis(off)subplot(8,1,8);stairs(t,h8(8,:);axis(off)本讲稿第三十四页,共八十七页h2=1 1;1-1;h4=h2 h2;h2-h2;h8=h4 h4;h4-h4;t=1:8;for i=1:8subplot(8,1,i);stairs(t,h8(i,:)axis(off)end本讲稿第三十五页,共八十七页例:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)本讲稿第三十六页,共八十七页例:绘制火柴杆绘图 t=0:0.2:2*pi;y=cos(t);stem(y)本讲
14、稿第三十七页,共八十七页例:绘制直方图 t=0:0.2:2*pi;y=cos(t);bar(y)本讲稿第三十八页,共八十七页例:绘制彗星曲线图 t=-pi:pi/500:pi;y=tan(sin(t)-sin(tan(t);comet(t,y)本讲稿第三十九页,共八十七页x=magic(6);area(x)本讲稿第四十页,共八十七页x=1 2 3 4 5 6 7;y=0 0 0 1 0 0 0;pie(x,y)本讲稿第四十一页,共八十七页pie(x,y,North,South,East,West,middle,fa,white)本讲稿第四十二页,共八十七页load seamountscatte
15、r(x,y,50,z)本讲稿第四十三页,共八十七页a=rand(200,1);b=rand(200,1);c=rand(200,1);scatter(a,b,100,c,p)本讲稿第四十四页,共八十七页二、三维绘图三维绘图的主要功能:绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色本讲稿第四十五页,共八十七页(一)三维线图plot3 基本的三维图形指令调用格式:plot3(x,y,z)x,y,z是长度相同的向量plot3(X,Y,Z)X,Y,Z是维数相同的矩阵plot3(x,y,z,s)带开关量plot3(x1,y1,z1,s1
16、,x2,y2,z2,s2,)本讲稿第四十六页,共八十七页二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax)grid on(off)绘制三维网格 text(x,y,z,string)三维图形标注 子图和多窗口也可以用到三维图形中本讲稿第四十七页,共八十七页例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)本讲稿第四十八页,共八十七页(二)三维饼图pie3(4 3 6 8 9)本讲稿第四十九页,共八十七页(三)三维多边形fill3=fill 三维多边形的绘制和填色与二维
17、多边形完全相同调用格式:fill3(x,y,z,s)与二维相同本讲稿第五十页,共八十七页例:用随机顶点坐标画出5个粉色的三角形,并用黄色的表示顶点y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);fill3(y1,y2,y3,m);hold on;plot3(y1,y2,y3,yo)本讲稿第五十一页,共八十七页(四)三维网格图mesh 三维网线绘图函数调用格式:mesh(z)z为nm的矩阵,x与y 坐标为元素的下标 mesh(x,y,z)x,y,z分别为三维空 间的坐标位置本讲稿第五十二页,共八十七页例,矩阵的三维网线图z=rand(6);0.8808 0.0729
18、 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.7189 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288z=round(z)1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0
19、1 0 0 1 1 0 1 0 0 1mesh(z);本讲稿第五十三页,共八十七页mesh(z)本讲稿第五十四页,共八十七页例:8阶hadamard矩阵的网线图h2=1 1;1-1;h4=h2 h2;h2-h2h8=h4 h4;h4-h4 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1mesh(h8)本讲稿第五十五页,共八十七页本讲稿
20、第五十六页,共八十七页三维网线图作图要领生成坐标 X,Y=meshgrid(x,y)表达式点运算 Z=X.2+Y.2X,Y是nm的矩阵,维数可任定X nY mZ默认方位角:37。5,俯角30。nm维本讲稿第五十七页,共八十七页 meshgrid 网线坐标值计算函数 z=f(x,y)根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形 x=-5:5;y=x;X,Y=meshgrid(x,y)Z=X.2+Y.2 mesh(X,Y,Z)坐标矩阵坐标向量纵坐标矩阵绘图函数本讲稿第五十八页,共八十七页本讲稿第五十九页,共八十七页colormap(R,G,B)色图设定函数matlab 的颜色数据
21、集合为红、绿、兰三颜色矩阵R,G,B,维数m3r,g,b在0 1区间连续取值,理论上颜色种类可达无穷多种matlab使用三维向量表示一种颜色,常用颜色数据见下表本讲稿第六十页,共八十七页 饱和色 0 0 0 黑色 0 0 1 兰色 0 1 0 绿色 0 1 1 浅兰 1 0 0 红色 1 0 1 粉红 1 1 0 黄色 1 1 1 白色 调和色0.5 0.5 05 灰色0.5 0 0 暗红色1 0.62 0.4 铜色0.49 1 0.8 浅绿0.49 1 0.83 宝石兰本讲稿第六十一页,共八十七页(五)三维曲面图surf 三维曲面绘图函数,与网格图 看起来一样与三维网线图的区别:网线图:线条
22、有颜色,空挡是黑色的(无颜色)曲面图:线条是黑色的,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化本讲稿第六十二页,共八十七页调用格式:surf(x,y,z)绘制三维曲面图,x,y,z 为图形坐标向量例:X,Y,Z=peaks(30)peaks为matlab自动生成的三维测试图形surf(X,Y,Z)本讲稿第六十三页,共八十七页 surfc(X,Y,Z)带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)本讲稿第六十四页,共八十七页 surfl(X,Y,Z)被光照射带阴影 的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)本讲稿第六十五页,共八十
23、七页 cylinde(r,n)三维柱面绘图函数 r 为半径;n为柱面圆周等分数例:绘制三维陀螺锥面t1=0:0.1:0.9;t2=1:0.1:2;r=t1-t2+2;x,y,z=cylinder(r,30);surf(x,y,z);grid本讲稿第六十六页,共八十七页 为球面等分数,缺省为20例:绘制三维球面x,y,z=sphere(30);surf(x,y,z);本讲稿第六十七页,共八十七页(六)图形修饰方法图形颜色的修饰matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形colormap(MAP)色图设定函数,MAP为m3维色图矩阵图形颜色可根据需要任意
24、生成,也可用matlab配备的色图函数本讲稿第六十八页,共八十七页matlab 的色图函数:hsv 饱和值色图 gray 线性灰度色图 hot 暖色色图 cool 冷色色图 bone 兰色调灰色图 copper 铜色色图 pink 粉红色图 prism 光谱色图 jet 饱和值色图II flag 红、白、蓝交替色图本讲稿第六十九页,共八十七页shading faceted 网格修饰,缺省方式本讲稿第七十页,共八十七页shading flat 去掉黑色线条,根据小方块的值确定颜色本讲稿第七十一页,共八十七页shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色本讲稿
25、第七十二页,共八十七页peaks(30);shading interp;colormap(hot)本讲稿第七十三页,共八十七页X,Y,Z=peaks(30);surfl(X,Y,Z)shading interp;colormap(cool);axis off本讲稿第七十四页,共八十七页peaks(30);colormap(hot);colorbar(horiz)figure(2);colormap(cool);本讲稿第七十五页,共八十七页 图形效果修饰透视与消隐 用于网线图裁剪修饰 用于网线图、曲面图视角修饰 观察不同角度的三维视图其它修饰:a.水线修饰 b.等高线修饰本讲稿第七十六页,共八十
26、七页透视与消隐p=peaks(30);mesh(p);hidden on本讲稿第七十七页,共八十七页p=peaks(30);mesh(p);hidden off本讲稿第七十八页,共八十七页裁减修饰p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);surf(p)本讲稿第七十九页,共八十七页p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);mesh(peaks,p)本讲稿第八十页,共八十七页视角修饰(函数view(az,el)az-方位角;el-俯视角 省缺值为:az=-37.5;el=30例。观察不同视角的波峰图形z=peaks
27、(40);subplot(2,2,1);mesh(z);subplot(2,2,2);mesh(z);view(-15,60);subplot(2,2,3);mesh(z);view(-90,0);subplot(2,2,4);mesh(z);view(-7,-10);本讲稿第八十一页,共八十七页本讲稿第八十二页,共八十七页其它修饰:a.水线修饰(waterfall)waterfall(peaks(30)本讲稿第八十三页,共八十七页b.等高线修饰二维contour(Z,n)-绘制n条等高线C=contourc(Z,n)-计算n条等高线的坐标Clable(c)-给等高线加标注例、在二维平面上绘制peaks函数的10条等 高线contour(peaks,10);C=contourc(peaks,10);clabel(C)本讲稿第八十四页,共八十七页本讲稿第八十五页,共八十七页contour3(peaks,20)本讲稿第八十六页,共八十七页小结:基本绘图函数 plot,plot3,mesh,surf要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定本讲稿第八十七页,共八十七页
限制150内