Presentation is loading. Please wait.

Presentation is loading. Please wait.

——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。

Similar presentations


Presentation on theme: "——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。"— Presentation transcript:

1 ——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。

2 数据可视化 不管根据计算得到的数据堆还是符号堆是多么准确,人们还是很难从这一大堆原始的数据和符号中发现它们的具体物理含义或是内在规律,而数据图形恰能使视觉感官直接感受到数据的许多内在本质,发现数据的内在联系。因此,数据可视化是一项非常重要的技术。

3 Matlab语言的绘图功能 Matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。
不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。 Matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。 在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。

4 一、二维绘图 手工绘图 figure命令自动打开一个图形窗口Figure(1),继续使用figure命令又会生成Figure(2),也可以直接输入Figure(10)。 有菜单栏File、Edit、View、Insert、Tool、Desktop等。 下面按照画图的一般顺序举例

5 例:画图y=sin(x),z=cos(x)
1.在Matlab的命令窗口输入各变量之间的关系。 x=-pi:0.1:pi; y=sin(x); z=cos(x); 2.建立图形窗口。 figure 3.建立坐标系:菜单Insert——Axes,可以拖放,改变位置。

6 4.给坐标轴加数据。选中坐标轴,右键选Add Data to Axes,再选图的类型和选Add Data to Axes,再选图的类型和变量的数据源。
5.选中坐标轴,双击。可对坐标轴进行属性设置:可加网格线、各坐标轴的取值范围、字体、背景图片颜色等。 6.防止再修改。菜单栏Tools——Edit Plot。

7 菜单栏功能介绍——File New——新建m文件、图形窗口(自动编号)、变量(自动保存到变量空间)、用户界面GUI。
Open——打开目录下已有的图形。

8 Save——保存图形窗口(可自命名,后缀fig)。
Generate M-File——根据图形窗口生成M文件(基本框架的代码自动生成)。 例:输入》mesh(peaks) 生成如下图形:

9 选择“Generate M-File”选项,生成如下文件。

10 Import Data——导入数据到变量空间(后缀是mat文件)。
Save Workspace As..——将图形窗口中的图形变量数据导出,储存在二进制mat文件中,可供其它编程语言调用。 Preferences——定义图形窗口的各种设置,包括字体、颜色等。 Export Setup——打开“图形输出”对话框,导出图形窗口到一个文件(ppt等)里面(可以各种图片格式,jpg、tif等)。 Page setup——页面设置,设置图形尺寸、纸张大小、线型及文本类型等。

11

12 菜单栏功能介绍——Edit Copy Figure——复制图形,不含坐标信息。
Copy Option——设置图形复制的格式、图形背景颜色和大小等。 Figure Property Editor——设置图形众多属性:名称、颜色等。 Axes Property Editor——设置图形坐标轴的众多属性:网格、字体等。 Colormap——色图编辑。 Find Files——查找文本文件。 Clear****——清除类功能。

13

14 菜单栏功能介绍——View Figure Toolbar——常用图形窗口工具条
Camera Toolbar——相机工具条(设置图形的视角和光照等) Plot Edit Toolbar——画图编辑工具条 Figure Palette——图画板 Plot Browser——绘图浏览器(查看当前图形窗口中的所有图形对象) Property Editor——属性编辑器

15

16 菜单栏功能介绍——Insert X Label——插入x轴的标签 Title——插入图像的标题 Legend——插入图例、说明条
Colorbar——插入色条 Line——插入直线 Arrow——插入箭头 Axes——插入坐标

17 菜单栏功能介绍——Tools Edit Plot——编辑画图板的开关锁 Zoom In——局部放大 Pan——以手移动
Rotate 3D——按照3维旋转 Data Cursor——数据指针 Reset View——全部重置 View Layout Grid——背景网格 Align Distribute Tool——排列布局工具 Basic Fitting——数据曲线拟合 Data Statistics——数据统计

18

19 plot —— 最基本的二维图形指令 若y为向量, 以y元素值为纵坐标,以相应元素下标为横坐标绘图。
若y为复向量,则plot(y)相当于plot(real(y),imag(y))。

20 y=[1,2,4,8,16,32,64,128]; plot(y)

21 y=[0,1,2;3,4,5;6,7,8]; plot(y)

22 x=[1:1:100]; y=[2:2:200]; z=x+y.*i; plot(z)

23 plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标图。
x,y均为n维向量时,绘制向量y对向量x的图形,即以x为横坐标,y为纵坐标。 x,y均为m×n的矩阵,将绘制n条不同颜色的连线。绘制规则为:以x矩阵的第i列分量作为横坐标,矩阵y的第i列分量作为纵坐标,绘得第i条连线。

24 例:用plot(x,y)绘制双向量 x=0:0.1:10;y=sin(x)+2;plot(x,y)

25 例:用plot(x,y)绘制双矩阵 x=[1,2,3;4,5,6;7,8,9];y=[2,4,5;3,6,7;4,6,8] plot(x,y)

26 plot(x1,y1,x2,y2…) —— 多条曲线绘图格式。
例:x1=0:0.1:10; y1=sin(x1); x2=0:0.1:10; y2=cos(x2); x3=0:0.1:10; y3=sin(x3)+cos(x3); plot(x1,y1,x2,y2,x3,y3)

27 plot(x,y, ‘s’)—— 此格式用于绘制不同的线形、点标和颜色的图形,字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如
yellow—yel表示等。 或plot(x1,y1,’s1’,x2,y2,’s2’,…)

28 S的标准设定值如下: 字母 颜色 标点 线型 y 黄色 · 点线 m 粉红 ○ 圈线 c 亮蓝 × ×线 r 大红 + +字线
字母 颜色 标点 线型 y 黄色 · 点线 m 粉红 ○ 圈线 c 亮蓝 × ×线 r 大红 + +字线 g 绿色 - 实线 b 蓝色  星形线 w 白色 : 虚线 k 黑色 -· (--) 点划线

29 matlab7.1线形: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ] square 正方形 diamond 菱形 pentagram 五角星 hexagram 六角星 Demo:demos/matlab/graphics/line plotting

30 例:plot(x,sin(x),'-.rd')

31 图形数据取点 用户做好图形后,希望知道某点的函数值,可使用ginput命令,方便地通过鼠标来读取二维平面图中任一点的坐标值。
[x,y]=ginput(n) 鼠标选择n个点,它们的坐标值保存在[x,y]中,可用回车键来结束取点。 [x,y]=ginput 鼠标取点数不受限制。

32 1. 单窗口单曲线绘图 例1:x=[0, 0.48,0.84,1,0.91,0.6,0.14] plot (x, ‘-*’) %经过反色处理

33 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) y y1 y2

34 例 3:y=sin(t);y1=sin(t+0. 25);y2=sin(t+0. 5); y3=cos(t);y4=cos(t+0
例 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'])

35 y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);
plot(t,y3);hold on; plot(t,y4); plot(t,y5);

36 x=peaks;plot(x) %此时查看x变量

37 x=1:length(peaks);y=peaks;plot(x,y)

38 3. 单窗口多曲线分图绘图 在已存的图中添加新的曲线,要求几个图形在同一个图形窗口,但新的曲线不在同一个坐标系中绘制,需要用到hold和subplot函数。 hold on 启动图形保持功能,此后绘制的图形都将添加到当前的图形窗口中,并自动调整坐标轴范围。 hold off 关闭图形保持功能。 hold 在hold on和hold off之间切换。

39 subplot —— 子图分割命令,该命令用于生成并控制多个坐标轴,把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。
subplot(m,n,p) 将一图形窗口分成mxn个小窗口,在第p个小窗口中创建一坐标轴,则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口。用户可以通过参数p分别对各子绘图区域进行操作,子绘图区域的编号从左至右编号。 subplot(m,n,p, 'align') 对齐坐标轴

40 t=0:pi/100:2. pi; y=sin(t); y1=sin(t+0. 25);y2=sin(t+0
t=0:pi/100:2*pi; y=sin(t); y1=sin(t+0.25);y2=sin(t+0.5);y3=cos(t); subplot(1,3,1); plot(t,y) subplot(1,3,2); plot(t,y3) subplot(1,3,3); plot(t,y2)

41 subplot(3,1,1); plot(t,y) subplot(3,1,2); plot(t,y3) subplot(3,1,3); plot(t,y2)

42 income=[ ] outgo=[ ] subplot(2,1,1), plot(income) subplot(2,1,2), plot(outgo)

43 subplot('position',[left bottom width height])在由4个元素指定的位置上创建一坐标轴

44 4. 多窗口绘图 此前学习的绘图命令得到的图形都是在相同的图形窗口中绘制的,这个窗口是Matlab7.0所有图形输出的专用窗口,在利用前面每一个绘图命令绘图时,这个窗口是随之自动生成的。 它是如何产生的呢?如何在利用函数命令绘制图形之前生成图形窗口?

45 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) ——在第三窗口绘图

46

47 5.可任意设置颜色与线型 例 :plot(t,y,'r-',t,y1,'g:',t,y2,'b*')

48 6.图形加注功能 将标题、坐标轴标记、网格线及文字注 释加注到图形上,这些函数为: title —— 给图形加标题
x-lable —— 给x轴加标注 y-lable —— 给y轴加标注 text —— 在图形指定位置加标注 gtext —— 将标注加到图形任意位置 (用鼠标来控制位置)

49 Zoom——该命令用于对二维图形的缩放 zoom on zoom off Box——控制坐标轴封闭 box on box off legend —— 添加图例 axis —— 控制坐标轴的刻度 grid on(off) —— 打开、关闭坐标网格线

50 例: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('正弦、余弦') grid axis square

51

52 2 4 6 8 10 时间t

53 axis的用法还有: axis([xmin xmax ymin ymax]) —— 用行向量中 给出的值设定坐标轴的最大和最小值。 如axis ([ ]) axis(equal) —— 将两坐标轴设为相等 axis on(off) —— 显示和关闭坐标轴的标 记、标志 axis auto —— 将坐标轴设置返回自动缺 省值 Demo:demos/matlab/graphics/ axes properties

54 7.fplot —— 绘制函数图函数 Plot命令是将从外部输入或通过函数数值计算得到的数据矩阵转化为连线图。而在实际应用中,用户可能并不知道某一个函数随自变量变化的趋势,此时若采用plot来绘图,可能会因为自变量的取值间隔不合理而使曲线图形不能反应出自变量在某些区域内函数值的变化情况。当然用户可以将自变量间隔取得足够小以体现函数值随自变量变化的精确曲线,但数据量变大。 而fplot通过内部的自适应算法来动态决定自变量的取值间隔,当函数值变化缓慢时,间隔取大一点;变化剧烈时,间隔取小一点。

55 fplot的调用格式: fplot(function,limits) — 绘制函数function在x区间 limits=[xmin,xmax](或者x和y的范围)的函数图。 fplot(fun,lims,'corline') — 以指定线形绘图。 fplot(fun,lims,n) — 至少绘制n+1个点。 [x,y]=fplot(fun,lims) — 只返回绘图点的值,而不绘图。用plot(x,y)来绘图。

56 fplot('[sin(x),tan(x),cos(x)]',2. pi
fplot('[sin(x),tan(x),cos(x)]',2*pi*[ ]) fplot('humps',[0 1],'rp')

57 8.ezplot ——符号函数的简易绘图 ezplot的调用格式:
ezplot(f) —这里f为包含单个符号变量x的符号表达式,在x轴的默认范围 [-2*pi,2*pi]内绘制f(x)的函数图 ezplot(f,[xmin,xmax]) — 给定区间 ezplot(f,[xmin,xmax],figure(n)) — 指定绘图窗口绘图。 注:f也可以为f=f(x,y),即为隐函数,也可以绘制参数表达的函数。ez代表符号的意思。

58 ezplot('sin(x)') ezplot('sin(x)','cos(y)',[-4*pi 4*pi],figure(2))

59 f=sym('x^2+1'); subplot(2,2,1) ezplot(f,[-2,2]) subplot(2,2,2) ezplot('y-x^2-1',[-2,2],[0,10]) x=sym('cos(t)'); y=sym('sin(t)'); subplot(2,2,3) ezplot(x,y)

60

61 三维直角坐标符号函数绘图 ezplot3(x,y,z,[t1,t2]) x=f(t) y=g(t) z=h(t)是参数方程
例: x=sym('cos(t)') y=sym('sin(t)') z=sym('t^2') subplot(2,2,4) ezplot3(x,y,z)

62

63 (二) fill –––– 基本二维绘图函数 绘制二维多边形并填充颜色
例:x=[ ];y=[ ]; fill(x,y,'r')

64 hist –––– 绘制统计直方图(柱状图) stairs –––– 绘制阶梯图 stem –––– 绘制火柴杆图
(三)特殊二维绘图函数 bar –––– 绘制直方图 polar –––– 绘制极坐标图 hist –––– 绘制统计直方图(柱状图) stairs –––– 绘制阶梯图 stem –––– 绘制火柴杆图 rose –––– 绘制统计扇形图 comet –––– 绘制彗星曲线

65 compass –––– 复数向量图(罗盘图) feather –––– 复数向量投影图(羽毛图)
errorbar –––– 绘制误差棒图 compass –––– 复数向量图(罗盘图) feather –––– 复数向量投影图(羽毛图) quiver –––– 向量场图 area –––– 区域图 pie –––– 饼图 convhull –––– 凸壳图 scatter –––– 离散点图

66 二、三维绘图 在实际的工程计算中常常需要将结果表示成三维图形,Matlab提供了相应的三维图形绘制功能,这些功能和二维图形的绘制由很多类似之处,其中曲线的属性设置完全相同。 最常用的三维绘图是绘制三维曲线图、三维网格图和三维曲面图。 其余的功能还有:绘制等高线图、伪彩色图、柱面图、球面图、三维多面体等填充颜色。

67 (一)三维曲线图 plot3 —— 基本的三维图形指令
plot3(X,Y,Z) —— X,Y,Z是长度相同的向量,绘制一条分别以向量X,Y,Z为x,y,z轴坐标值的空间曲线。 plot3(X,Y,Z) —— X,Y,Z均是mxn的矩阵,绘制m条曲线,第i条曲线分别以X,Y,Z矩阵的第i列分量为x,y,z轴坐标值的空间曲线。 plot3(x,y,z,s) —— 带开关量 plot3(x1,y1,z1,'s1', x2,y2,z2,'s2', …)

68 二维图形的所有基本特性对三维图形全都适用
定义三维坐标轴大小 axis([xmin xmax ymin ymax zmin zmax ]) grid on(off) 绘制三维网格 text(x,y,z,‘string’) 三维图形标注 子图和多窗口也可以用到三维图形中

69 例:绘制三维曲线图 t=0:pi/50:10*pi; plot3(t,sin(t),cos(t),'r:')

70 例:绘制三维螺旋线 t=0:pi/50:10*pi; plot3(cos(t),sin(t),t,'r:')

71 例:绘制向量 t=[0:pi/100:2*pi];x=[sin(t) sin(t)];y=[cos(t) cos(t)];z=[(sin(t)).^2+(cos(t)).^2 (sin(t)).^2+(cos(t)).^2+1 ]; plot3(x,y,z,'r:')

72 (二)三维网格图 mesh —— 三维网格绘图函数,不同于plot3的是可以绘制出在某一区间内完整的曲面,而不是单根曲线。 调用格式:
mesh(Z) —— Z为m×n的矩阵,将(i,j)作为Z(i,j)的X,Y轴坐标值。 mesh(X,Y,Z) —— X,Y分别为三维空间的坐标位置,必须均为向量,若X和Y的长度分别为m和n,则Z必须为mxn的矩阵。

73 例:矩阵的三维网格图 z=rand(6); mesh(z)
mesh(z)

74

75 z=round(z) mesh(z)

76

77 例:8阶hadamard矩阵的网线图 h2=[1 1;1 -1];h4=[h2 h2;h2 -h2] h8=[h4 h4;h4 -h4]
mesh(h8)

78

79 例:x=[0:0.1:5;2:0.1:7]; mesh(x)

80 例:[X,Y,Z]=peaks(30) %peaks为matlab自动生成的三维测试图形 meshc(Z) %加等高线

81 例:[X,Y,Z]=peaks(30) meshz(Z) %加绘制边界面的功能

82 三维图作图参考 [X,Y]=meshgrid(x,y) —— x和y为给定的向量,是用来定义网格 划分区域的,也可定义网格划分方法;X和Y用来存储网格划分后的数据矩阵。 此命令的作用是将给定的区域按一定的方式划分成平面网格。

83 z=f(x,y) — 根据x,y坐标找出z的高度 例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x;
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) 坐标矩阵 坐标向量 纵坐标矩阵 绘图函数

84

85 colormap( [R,G,B])—— 色图设定函数
matlab 的颜色数据集合为红、绿、兰三颜色矩阵[R,G,B],维数m×3 r,g,b在[0 1]区间连续取值,理论上颜色种类可达无穷多种 colormap(‘default’)——恢复默认设置 matlab使用三维向量表示一种颜色,常用颜色数据见下表

86 调和色 [ ] — 灰色 [ ] — 暗红色 [ ] — 铜色 [ ] — 浅绿 [ ] —宝石兰  饱和色 [0 0 0] — 黑色 [0 0 1] — 兰色 [0 1 0] — 绿色 [1 0 0] — 红色 [1 0 1] — 粉红 [1 1 0] — 黄色 [1 1 1] — 白色 Demo:demos/./examples of images and colormaps

87 (三)三维曲面图 surf —— 三维曲面绘图函数,与网格图 看起来一样 与三维网格图的区别: 网格图:线条有颜色,空挡是黑色的(无颜色)
曲面图:线条是黑色的,空挡有颜色(把 线条之间的空当填充颜色,沿z轴按每一网 格变化)

88 调用格式:  surf(x,y,z) —— 绘制三维曲面图,x,y,z 为图形坐标向量 例: [X,Y,Z]=peaks(30) %peaks有人称之草帽函数 surf(X,Y,Z) figure mesh(Z) 注:对比生成的两图之间的区别。

89

90

91  surfc(X,Y,Z) — 带等高线的曲面图
[X,Y,Z]=peaks(30);surfc(X,Y,Z)

92  surfl(X,Y,Z) —— 被光照射带阴影
的曲面图 [X,Y,Z]=peaks(30);surfl(X,Y,Z)

93 [X,Y,Z]=peaks(30);waterfall(Z)

94 (四) 特殊的三维图形 Pie3——饼图 例:pie3([ ])

95 cylinde(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

96

97 Sphere(n)——生成nxn个面的三维球体,默认为20*20个面。
例:[x,y,z]=sphere(30);surf(x,y,z);

98 (五)三维多边形 fill3 = fill —— 三维多边形的绘制和填色与二维多边形完全相同 调用格式:
fill3(x,y,z,‘s’) —— 与二维相同 例: 用随机顶点坐标画出5个粉色的三角形,并用黄色的○表示顶点。

99 y1=rand(3,5);y2=rand(3,5);y3=rand(3,5);
fill3(y1,y2,y3,'m');hold on;plot3(y1,y2,y3,'yo')

100 (六) 图形修饰方法 图形颜色的修饰 matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形。
colormap(MAP) —— 色图设定函数,MAP为m×3维色图矩阵。 图形颜色可根据需要任意生成,也可用matlab配备的色图函数。

101 matlab 的色图函数: hsv —— 饱和值色图 gray —— 线性灰度色图 hot —— 暖色色图 cool —— 冷色色图 bone —— 兰色调灰色图 copper —— 铜色色图 pink —— 粉红色图 prism —— 光谱色图 jet ——饱和值色图II flag —— 红、白、蓝交替色图

102 shading faceted — 网格修饰,缺省方式

103 shading flat —— 去掉黑色线条,根据小方块的值确定颜色

104 shading interp —— 颜色整体改变,根据
小方块四角的值差补过度点的值确定颜色

105 peaks(30);shading interp;colormap(hot)

106 [X,Y,Z]=peaks(30);surfl(X,Y,Z) shading interp;colormap(cool);axis off

107 peaks(30);colormap(hot);colorbar('horiz')
figure(2);colormap(cool);

108  图形效果修饰 透视与消隐—— 用于网线图 裁剪修饰 ——用于网线图、曲面图 视角修饰 —— 观察不同角度的三维视图 其它修饰:
a. 水线修饰 b. 等高线修饰

109 透视与消隐 p=peaks(30);mesh(p);hidden on(消隐)

110 p=peaks(30);mesh(p);hidden off

111 例:带等位线可透视peaks多峰函数 figure(1) meshc(peaks(20))    %绘带等位线的多峰图 colormap([1 0 0])   %红色网线[RGB] hidden off          %可透视

112 裁减修饰 p=peaks; p(30:40,20:30)=nan*p(30:40,20:30); surf(p)

113 p=peaks; p(30:40,20:30)=nan*p(30:40,20:30); mesh(peaks,p)

114 视角修饰(函数view(az,el)) az ----方位角;el ---- 俯视角 省缺值为:az=-37.5; el=30 例:观察不同视角的波峰图形 z=peaks(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);

115

116 其它修饰: a. 水线修饰(waterfall) waterfall(peaks(30))

117 b. 等高线修饰 二维 contour(Z,n) 绘制n条等高线 C= contourc(Z,n)------计算n条等高线的坐标 Clable(c)------给等高线加标注 例、在二维平面上绘制peaks函数的10条等 高线 contour(peaks,10); C=contourc(peaks,10);clabel(C)

118

119 contour3(peaks,20) Demo:demos/…/3D-surface plots

120 (五)、伪彩色图 z=peaks(30) pcolor(z)

121 (六)制作动画 一般来讲,matlab制作动画有四种方式: 1.以质点运动轨迹来显示动画 2.以电影播放的方式来显示动态效果
3.以对象方式显示 4.以旋转颜色的方式显示 Demo:demos/…/vibrating logo

122 质点运动轨迹——彗星曲线 使用comet、comet3函数,前者是二维,后者是三维 。 comet(y) 显示质点绕向量y
comet(x,y) 显示质点绕向量y与x comet(x,y,p) 其中p为轨迹尾巴的长度, 默认p=0.1

123 模拟平抛运动 vx = 40; t = 0:0.001:10; x = vx*t; y = -9.8*t.^2/2; comet(x,y,0.22)

124 模拟导弹发射 vx = 100*cos(1/4*pi); vy = 100*sin(1/4*pi); t = 0:0.001:15; x = vx*t; y = vy*t-9.8*t.^2/2; comet(x,y)

125 匀速圆周运动 sita = 0:0.0001:2*pi; r = 10; x=r*cos(sita); y=r*sin(sita); comet(x,y) 注: 如何调节速度? 使用步长调节速度!

126 comet3与comet的用法相类似,可以在帮助文件里找到例子:
t = -10*pi:pi/250:10*pi; comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t)

127 电影次序播放形式 保存想要产生动画的图片,存储为一系列各种类型的二维、三维图,再像放电影的方式按次序播放出来。 动画生成的步骤:
调用moviein函数对内存进行初始化,创建一个足够大的矩阵,存放当前坐标轴大小的一系列指定图形。 对动画中的每一帧生成图形,并把它们放到帧矩阵中(即:将当前的图片抓取为电影的画面 ) —— getframe 从帧矩阵中回放动画—— movie,可以指定次数和播放速度。

128 例: axis equal %坐标相同 M=moviein(8) %产生矩阵 set(gca,'Nextplot','replacechildren') for j=1:8 plot(fft(eye(j+8))) %eye为单位矩阵,fft为快速傅立叶变换 M(:,j)=getframe; end movie(M,2,1) %M为播放对象,2为播放次数,1为每秒播放的帧数,默认为12

129 例:图形放大 [x,y] = meshgrid([-1.05:0.2:3.75]); z = x.*exp(-x.^2-y.^2);
axis tight; %axis limits to the range of the data set(gca,'nextplot','replacechildren'); for j = 1:40 surf(x*sin(pi*j/100),y*sin(pi*j/100),z*sin(-pi*j/100)); m(j) = getframe end movie(m)

130 例:仿vibrating logo Z = peaks; surf(Z); axis tight
set(gca,'nextplot','replacechildren'); % Record the movie for j = 1:20 surf(sin(2*pi*j/20)*Z,Z) F(j) = getframe; end % Play the movie twenty times movie(F,20)

131 例:动态加星曲线 clc;clear; x=0;n=40; %set(gca,'nextplot','replacechildren');
for j=1:n x(j+1)=x(j)+2*pi/n; y=sin(x); plot(x,y,'*-'),axis([0 2*pi -1 1]),grid on M(j) = getframe; end movie(M)

132 例:一球绕一曲线前进 clc;clear; n=100; x=0:pi/n:2*pi y=sin(x); k=0;
for t=0:pi/n:2*pi k=k+1; x(k)=t y(k)=sin(t); m=plot(x,y,x(k),y(k),'or') grid getframe; end

133 以对象方式显示 设置对象的属性EraseMode,更新对象来产生新图,drawnow()函数进而覆盖旧图,从而使得图形不断发生变化。 在程序循环中,改变对象的坐标来移动对象。 移动对象的方法有: 1.none:移动对象时不擦除。 2.background:移动对象时用背景色重绘。对象完全擦除,包括对象背景下的所有图形。 3.xor:同上,不擦除对象背景下的所有图形。 4.normal: 重画整个画面。

134 例:旋转红点 x = -pi:pi/30:pi; h = plot(x,cos(x),'o','MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',8,'EraseMode','Xor') for j = 1:10000 y = 1/2*sin(3*x+0.006*j); set(h,'ydata',y); drawnow; end

135 小结: 基本绘图函数 plot, plot3, mesh, surf 要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定
问:如何画一个立方体?

136 exp2_3.m plot绘图命令的基本使用 exp2_3_.m plot命令参数设置 exp2_4.m plot命令参数设置 exp2_5.m 绘制单位圆 exp2_5_.m 图形文字标示命令的使用 exp2_6.m 图形分割命令的使用 exp2_7.m 各种高度图

137 例:绘制直方图 t=0:0.2:2*pi; y=cos(t); bar(y)

138 Y=[5 2 1;8 7 3;9 8 6;5 5 4;4 3 2]; subplot(2,2,1) bar(Y) box off subplot(2,2,2) bar3(Y) %三维垂直条图 subplot(2,2,3) barh(Y) %二维水平条图 subplot(2,2,4) bar3h(Y) %三维水平条图

139 x=-2:0.2:2; bar(x,exp(-x.*x), 'r')
例:绘制直方图 x=-2:0.2:2; bar(x,exp(-x.*x), 'r') 返回

140 t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)
例:绘制极坐标绘图 t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y) 返回

141 t=-3.9:0.1:3.9; y=randn(10000,1); hist(y,t) %了解大量数据分布情况
例:绘制条形直方图 t=-3.9:0.1:3.9; y=randn(10000,1); hist(y,t) %了解大量数据分布情况 返回

142 例:绘制阶梯曲线 x=0:pi/20:2*pi;y=sin(x);stairs(x,y)

143 例:阶梯绘图 h2=[1 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,7);stairs(t,h8(7,:));axis('off') subplot(8,1,8);stairs(t,h8(8,:));axis('off')

144 h2=[1 1;1 -1];h4=[h2 h2;h2 -h2]; h8=[h4 h4;h4 -h4]; t=1:8; for i=1:8
subplot(8,1,i); stairs(t,h8(i,:)) axis('off') end 返回

145 t=0:0.2:2*pi; y=cos(t); stem(y)
例:绘制火柴杆图 t=0:0.2:2*pi; y=cos(t); stem(y) 返回

146 t=0:0.2:2*pi; rose(t)---默认分20份
例:绘制统计扇形图 t=0:0.2:2*pi; rose(t)---默认分20份 返回

147 y=tan(sin(t))-sin(tan(t)); comet(t,y)
例:绘制彗星曲线图 t= -pi:pi/500:pi; y=tan(sin(t))-sin(tan(t)); comet(t,y) 返回

148 例:绘制区域图x=magic(6);area(x) %函数值求和
返回

149 例:绘制饼图 x=[1 2 3 4 5 6 7];y=[0 0 0 1 0 0 0];pie(x,y) y中的1代表割出的饼

150 pie(x,y,{'North','South','East','West', 'middle','fa','white'})
返回

151 例:绘制离散点图 load seamount ——海山 scatter(x,y,50,z)

152 a=rand(200,1);b=rand(200,1); c=rand(200,1); scatter(a,b,100,c,'p')
返回


Download ppt "——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。"

Similar presentations


Ads by Google