matlab可视化绘图讲义
- 格式:ppt
- 大小:292.50 KB
- 文档页数:15
第五讲 MATLAB的数据可视化MATLAB的数据可视化几乎能满足一般实际工程、科学计算中所有图形需要。
Matlab可使用户计算所得的数据根据其不同情况转化成相应的图形。
可以选择直角坐标、极坐标等不同的坐标系;可以表现出平面曲线、空间曲线,绘制直方图、向量图、柱状图及空间网面图、空间表现图。
当初步完成计算结果的可视化后,Matlab还可对图形作进一步加工,如初级操作,如标注、添色、变换视角;中级操作,如控制色图、取局部视图、切片图;高级操作,如动画、句柄等。
2 二维图形2.1基本的绘图函数plot2.1.1向量式plot(v)v=[1,2,2,1,4];plot(v)t=0:pi/100:2*pi;x=cos(t);y=sin(t);A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16];若X,Y为同维向量若X为向量,Y有一维与X等维的矩阵X=0:pi/100:2*pi;X=X';Y=[sin(X),cos(X),cos(X+0.5)];plot(X,Y)t1=0:pi/100:2*pi;y1=cos(t1);t2=0:pi/100:4*pi;y2=sin(t2);plot(X1,Y1,S1,X2,Y2,S2,…)y1=sin(t);y2=cos(t);plot(t,y1,'+r:',t,y2,'og--')2.32.3.1函数简介bar 生成数据的bar图形compass 生成复数的平面向量图形errorbar 生成误差的bar图形feather 生成沿x-轴分布的复数向量图hist 生成向量的统计直方图polar 生成极坐标上的函数图形quiver 生成向量的梯度场或向量场rose 生成幅角的统计直方图stairs 与bar的作用相同,但无区间间隔线段fill 生成多边型区域并进行着色填充fplot 生成数学函数的函数图形semilogx 生成x为对数坐标,y为线性坐标图形semilogy 生成y为对数坐标,x为线性坐标图形loglog 生成双对数坐标图形plotyy 生成左右两侧带y轴的图形2.3.2极坐标图形t=0:0.01:2*pi;fplot('cos(tan(pi*x))',[-0.4,1.4])2.3.4 隐函数绘制f(x,y)=0ezplot(隐函数表达式)ezplot('x^2*sin(x+y^2)+y^2*exp(x+y)+5*cos(x^2+y)')3三维图形3.1三维函数简介plot3 3维曲线contour,contour3 等高线图mesh,meshc,meshz 网格图surf,surfc,surfl 着色图fill3 3维多边型填充图3.2 三维线型图形plot3(X1,Y1,Z1,S1,X2,Y2,Z2,S2,…)3.33.3.1平面网格点的生成[X,Y]=meshgrid(x,y)生成x-y平面上小矩形顶点坐标值的矩阵3.3.2计算所有网格点处的函数值3.3.3生成网格曲面meshx=-8:0.5:8;y=x;[X,Y]=meshgrid(x,y);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(Z)一般形式为mesh(X,Y,Z,C)C称为颜色矩阵,网格曲面的网格线的颜色由C值根据当前的色谱来着色mesh(Z)mesh(X,Y,Z)x=-4:4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;mesh(X,Y,Z)meshz(Z) 带垂帘线的网格图 Z=peaks(30); meshc(Z)meshz(Z)3.4三维着色图surfsurf 的曲面生成过程与mesh 是类似的,所不同的是mesh 仅对网格线进行着色,surf 是对网格片进行着色,而网格线用黑色标出.surf(Z,C) surf(X,Y,Z,C) surf(x,y,Z,C) x=-1.5:0.3:1.5;y=-1:0.2:1; [X,Y]=meshgrid(x,y);Z=sqrt(4-X.^2/9-Y.^2/4);surfl(X,Y,Z) 带光照效果的着色图着色方式:shading faceted 缺省着色模式,网格线为黑色shading flat 与faceted 模式类似,只是网格线也分块着色shading interp 网格块区域内部像素的颜色由该4个顶点的颜色值做双线性插值 surfl(peaks(200)),shading interp;3.5等高线图形contourcontour(Z) contour(Z,n) contour(Z,v) contour(X,Y,Z,n) contour(X,Y,Z,v) contour(x,y,Z,n) contour(x,y,Z,v)C=contourc(X,Y,Z,n) C=contourc(X,Y,Z,v) 生成等高线的x-y 坐标数据 clabel(C) clabel(C) 等高线加高度标识 其中n 是绘制等高线的数目,可缺省v 是在向量v 指定的值上绘制等高线,可缺省 Z=peaks(40); contour(Z,6)C=contourc(Z,6); clabel(C)三维等高线contour3contour3(peaks(40),6)44.1定义在面上的三维函数[X,Y,Z]=sphere(30);T=abs(Z); %假设地球的气温函数surf(X,Y,Z,T))(222z y x xe v ++-=4.2作切片图slicev=f(x,y,z)[X,Y,Z]=meshgrid(x,y,z) slice(X,Y,Z,V,xi,yi,zi)函数的四维表现x=-2:0.1:2;y=-2:0.25:2;z=-2:0.25:2; [X,Y,Z]=meshgrid(x,y,z); V=X.*exp(-X.^2-Y.^2-Z.^2); xi=[-0.7,0.7];yi=0.5;zi=-0.5;slice(X,Y,Z,V,xi,yi,zi)xlabel('x');ylabel('y');zlabel('z');hold on colorbar('horiz')view([-30,45])5图形的标注5.1 图名和坐标轴的标注title('string')xlable('string') ylabel('string') zlabel('string')legend('string1','string2',…)5.2 所画图形的文字说明text(x,y,z,'string')gtext('string')5.3分格线grid ongrid offgridx=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,'b:',x,z,'k-')xlabel('varible x'),ylabel('function y and z'), title('sin and cos curves')grid ontext(3.3,0.1,'sin(x)')text(5.1,0.3,'cosx')66.1 图形的窗口创建和控制figure figure(n) clf6.2 子图形的创建和控制subplot(m,n,p)t=0:0.1:2*pi;x=sin(t);subplot(2,2,1)plot(t,x)subplot(2,2,2)polar(t,x)subplot(2,2,3)6.3hold on hold off hold6.4坐标轴的控制axis([xmin,xmin,ymin,ymax,zmim,zmax])axis('auto') 返回坐标轴的缺省状态(自动刻度)axis(axis) 保持刻度范围不变axis('ij') 以"矩阵(ij)"坐标轴表现图形axis('xy') 以缺省的笛卡尔坐标系表现图形axis('off') 使坐标系消隐axis('on') 使坐标系显现axis('equal') 使坐标系轴刻度增量相同axis('suare') 使坐标系轴长度相同axis('normal') 关闭axis('equal') 和axis('suare')[x,y,z]=peaks(20);subplot(1,2,1);mesh(z);axis('ij');title('矩阵坐标');xlabel('J轴');ylabel('I轴');subplot(1,2,2);mesh(z);axis('xy');title('笛卡尔坐标');xlabel('X轴');ylabel('Y轴');6.5视角的控制观察函数view(az,el)二维观察的缺省值为:az=0,el=90三维观察的缺省值为:az=-37.5,el=30Z=peaks(40);subplot(1,2,1);mesh(Z),view(-37.5,30)subplot(1,2,2);mesh(Z),view(-90,0)7色彩的控制和表现7.1 颜色的表示法用一个长度为3的实数向量表示色谱:由RGB值组成的m x 3维数值矩阵,每个MATLAB图形窗口关联一个色谱矩阵,即该图形窗口中图形对象可使用的颜色伪色谱:相对于图象来说非图象真实颜色的任何一个色谱调色板:图象的特定色谱,在该色谱下,图象颜色被真实地表现出来7.3系统色谱(色图函数)MATLAB缺省着色方式是通过线性变换的方式将颜色矩阵的数值元素映射到色谱矩阵的行索引号,以该行的RGB颜色值所决定的颜色对颜色矩阵元素对应的图形位置进行着色7.5基本操作colormap(MAP) 将当前图形的色谱设为 MAPcolormap(pink)color([110])rgbplot(MAP) 把色谱矩阵中的三列数分别用红、绿、蓝三种颜色画出来pcolor 绘伪彩色图,图形使用的色彩用于表示数据的大小,而不是自然的色彩colorbar 在图形窗口中增加水平或垂直的颜色标尺以显示当前所采用的色谱colorbar('vert')colorbar('horiz')Z=peaks(40);colormap(hot)mesh(Z)colorbar('horiz')8 图形的输出(尽量保持原图形的信息)8.1 打印输出8.2 文件保存 file save as…选文件格式(上面主要是以“命令”方式讲解,其实许多命令都可以在figure窗口完成)9 补充* 前面对图形的控制都是通过命令来完成的,其实可以通过Menu+Toolbar+Mouse来完成更方便。
幻灯片1第六讲 Matlab 数据可视化及其在测绘中应用幻灯片2内容提要● 1.平面曲线绘制● 2.符号变量和符号函数 ● 3.三维曲线绘制 ● 4.三维曲面绘制● 5.数据可视化在测绘中应用幻灯片3一、平面曲线绘制 1.单窗口多曲线绘图● figure %默认打开一个窗口,可以省略 ● t=0:pi/100:2*pi;● y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5);● subplot(1,3,1); plot(t,y1);%执行subplot(1,3,1);会自动打开subplot(1,3,2); plot(t,y2); subplot(1,3,3); plot(t,y3);510-1-0.8-0.6-0.4-0.200.20.40.60.810510-1-0.8-0.6-0.4-0.200.20.40.60.810510-1-0.8-0.6-0.4-0.200.20.40.60.81幻灯片4subplot(3,1,1); %自动打开一个窗口 plot(t,y1); subplot(3,1,2); plot(t,y2); subplot(3,1,3); plot(t,y3);原来的窗口里面的图形没有啦!01234567-10101234567-10101234567-101幻灯片52.多窗口多曲线绘图figure(n) —— 创建窗口函数,n 为窗 口顺序号。
t=0:pi/100:2*pi;y1=sin(t);y2=sin(t+0.25);y3=sin(t+0.5); plot(t,y1) —— 自动出现第一个窗口 figure(2)plot(t,y2) —— 在第二窗口绘图 figure(3)plot(t,y3) ——在第三窗口绘图 注意:如果不这样呢?会咋样? 幻灯片61234567-1-0.8-0.6-0.4-0.200.20.40.60.811234567-1-0.8-0.6-0.4-0.200.20.40.60.811234567-1-0.8-0.6-0.4-0.200.20.40.60.81幻灯片73.图形加注功能若将标题、坐标轴标记、网格线及文字注释加注到图形上,常用函数为: title —— 给图形加标题 xlable —— 给x 轴加标注 ylable —— 给y 轴加标注text —— 在图形指定位置加标注 gtext —— 将标注加到图形任意位置grid on(off) —— 打开、关闭坐标网格线 legend —— 添加图例axis —— 控制坐标轴的刻度注:也可以直接在figure 窗口进行鼠标操作 幻灯片8例:t=0:0.1:10; y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'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 grid off 幻灯片9幻灯片10注意:axis的用法还有:axis([xmin xmax ymin ymax]) ——用行向量中给出的值设定坐标轴的最大和最小值。
第6章数据可视化及图像处理MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能。
Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
6.1 二维数据可视化6.2 三维数据可视化6.3 图像处理工具箱6.1二维数据可视化二维图形的绘制是其它绘图操作的基础,介绍二维图形的绘制主要包括:二维绘图、图形的标注、特殊图形的绘制等。
6.1.1 MATLAB绘图基础二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
¾基本绘图函数在MATLAB中,绘制二维图形最常用的函数是plot( ),该函数的功能非常强大,通过不同的输入,能够绘制不同的图形。
该函数的调用格式为:1.函数plot(y)2.函数plot(x, y)3.函数plot(x, y, s)4.函数plot(x1, y1, s1, x2, y2, s2, …)z函数plot(y)输入参数y可以是向量、矩阵和复数向量:a)y是向量,则采用向量的索引作为横坐标,向量元素的值为纵坐标绘制二维图形;b)y为实数矩阵,相当于对y的每一列进行二维绘图;c)y为复数组成的向量,相当于plot(real(y),imag(y)),以复数的实部为横坐标,虚部为纵坐标进行二维绘图。
z函数plot(x, y)a)x, y都是向量时,如果其长度相同,则以x为横坐标,y为纵坐标,把这些点连接起来形成二维图形;b)x是矢量,y是有一维与x同维的矩阵时,则以x为共同横坐标绘制多条不同颜色的曲线曲线的条数由y 的另一维决定;c)x、y是同维的矩阵时,以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数决定于矩阵的列数。
z函数plot(x, y, s)a)该函数用于绘制不同线型和颜色的二维图形,其中参数s为字符串,代表不同的线型和颜色。