二维平面画图_第1页
二维平面画图_第2页
二维平面画图_第3页
二维平面画图_第4页
二维平面画图_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、王玉皞 博士/副教授南昌大学信息工程学院email: plot : 最基本的绘图指令 对 x 坐标及相对应的 y 坐标进行作图 范例3-1:plotxy01.mx = linspace(0, 2*pi);% 在 0 到 2 间,等分取 100 个点y = sin(x);% 计算 x 的正弦函数值plot(x, y);% 进行二维平面描点作图 linspace(0, 2*pi) 产生从 0 到 2且长度为 100 (默认值)的向量 x y 是对应的 y 坐标 只给定一个向量 该向量则对其索引值(index)作图plot(y)和plot(1:length(y), y)会得到相同的结果0123456

2、7-1-0.8-0.6-0.4-0.200.20.40.60.81 一次画出多条曲线 将 x 及 y 坐标依次送入plot 指令 范例3-2:plotxy02.mx = linspace(0, 2*pi); % 在 0 到 2 间,等分取 100 个点plot(x, sin(x), x, cos(x), x, sin(x)+cos(x); % 进行多条曲线描点作图01234567-1.5-1-0.500.511.5plot(x,sin(x), x, cos(x), x, sin(x)+cos(x);画出多条曲线时,会自动轮换曲线颜色 若要以不同的线标(marker)来作图 范例3-3:plot

3、xy03.mx = linspace(0, 2*pi);% 在 0 到 2 间,等分取 100 个点plot(x, sin(x), o, x, cos(x), x, x, sin(x)+cos(x), *);01234567-1.5-1-0.500.511.5 只给定一个矩阵 y 对矩阵 y 的每一个行向量(column vector)作图 范例3-4:plot04.my = peaks;% 产生一个 4949 的矩阵plot(y);% 对矩阵 y 的每一个行向量作图 peaks 指令产生一个4949的矩阵,代表二维函数的值 plot(y) 直接画出 49 条直线 类似于从侧面观看 peaks

4、 函数05101520253035404550-8-6-4-20246810 x 和 y 都是矩阵 plot(x, y) 会取用 y 的每一个行向量和对应的 x 行向量作图 范例3-5:plotxy05.mx = peaks;y = x;% 求矩阵 x 的转置矩阵 xplot(x, y);% 取用矩阵 y 的每一行向量,与对应矩阵 x % 的每一个行向量作图-8-6-4-20246810-8-6-4-20246810一般情况下,matlab 将矩阵视为行向量的集合 对只能处理向量的函数(ex : max、min、 mean) 给定一个矩阵,函数会对矩阵的行向量一一进行处理或运算 z 是一个复数

5、向量或矩阵 plot(z) 将 z 的实部(即 real(z)和虚部(即 imag(z)当成 x 坐标和 y 坐标来作图, 其效果等于 plot(real(z), imag(z) 范例3-6:plotxy06.mx = randn(30);% 产生 3030 的随机数(正规分布)矩阵z = eig(x);% 计算 x 的固有值(或称特征值)plot(z, o)grid on% 画出网格线 x 是一个 3030 的随机数矩阵 z 则是 x 的固有值(eigenvalue,或特征值) z 是复数向量,且每一个复数都和其共轭复数同时出现,因此画出的图是上下对称-8-6-4-20246-5-4-3-2

6、-1012345指令说明plotx 轴和 y 轴均为线性刻度(linear scale)loglogx 轴和 y 轴均为对数刻度(logarithmic scale)semilogxx 轴为对数刻度,y 轴为线性刻度semilogyx 轴为线性刻度,y 轴为对数刻度plotyy画出两个刻度不同的y轴 semilogx指令 使 x 轴为对数刻度,对正弦函数作图 范例plotxy07.mx = linspace(0, 8*pi);% 在 0 到 8 间,等分取 100 个点semilogx(x, sin(x); % 使 x 轴为对数刻度,并对其正弦函数作图10-1100101102-1-0.8-0

7、.6-0.4-0.200.20.40.60.81x轴为对数刻度 plotyy 指令 画出两个刻度不同的 y 轴 范例3-8:plotxy08.mx = linspace(0, 2*pi);% 在 0 到 2 间,等分取 100 个点y1 = sin(x);y2 = exp(-x);plotyy(x, y1, x, y2); % 画出两个刻度不同的 y 轴,分别是 y1, y2 y1 的刻度是在左手边 y2 的刻度是在右手边 两边的刻度不同01234567-1010123456700.51y1的刻度y2的刻度 plot 指令,可以接受一个控制字符串输入 用以控制曲线的颜色、格式及线标 使用语法p

8、lot(x, y, clm) c:曲线的颜色(colors) l:曲线的格式(line styles) m:曲线所用的线标(markers) 用黑色点线画出正弦波 每一资料点画上一个小菱形 范例3-9:plotxy09.mx = 0:0.5:4*pi;% x 向量的起始与结束元素为 0 及 4, % 0.5为各元素相差值y = sin(x);plot(x, y,k:diamond)% 其中k代表黑色,:代表点% 线,而diamond 则指定菱形为曲% 线的线标02468101214-1-0.8-0.6-0.4-0.200.20.40.60.81 plot指令的曲线颜色字符串曲线颜色rgb值b蓝

9、色(blue)(0,0,1)c青蓝色(cyan)(0,1,1)g绿色(green)(0,1,0)k黑色(black)(0,0,0)m紫黑色(magenta)(1,0,1)r红色(red)(1,0,0)w白色(1,1,1)y黄色(yellow)(1,1,0) plot 指令的曲线格式字符串曲线格式-实线(默认值)-虚线:点线-.点虚线 plot 指令的曲线线标字符串曲线符号符号o圆形+加号x叉号*星号.点号朝上三角形v朝下三角形 plot 指令的曲线线标字符串曲线符号符号朝右三角形朝左三角形square方形diamond菱形pentagram五角星形hexagram六角星形none无符号(默认值

10、) plot 指令会根据坐标点自动决定图轴范围 也可以使用 axis 指令指定图轴范围 使用语法:axis(xmin, xmax, ymin, ymax) xmin , xmax:指定 x 轴的最小和最大值 ymin , ymax:指定 y 轴的最小和最大值 画出正弦波在 y 轴介于 0 和 1 的部份 范例3-10:plotxy10.mx = 0:0.1:4*pi;% 起始与结束元素为 0 及 4,0.1 为各% 元素相差值y = sin(x);plot(x, y);axis(-inf, inf, 0, 1);% 画出正弦波 y 轴介于 0 和 1 的部份 inf指令: 以资料点(上例: x

11、 轴的数据点)的最小和最大值取代之02468101200.10.20.30.40.50.60.70.80.91 指定图轴上的网格线点(ticks) 范例3-11:plotxy11.mx = 0:0.1:4*pi;plot(x, sin(x)+sin(3*x)set(gca, ytick, -1 -0.3 0.1 1);% 在 y 轴加上网格线点grid on% 加上网格线 grid on:加上网格线 gca: get current axis的简称 传回目前使用中的图轴 gca属handle graphics的指令,第七章会有更详细的说明02468101214-1-0.30.11使用者加入的网

12、格线点和文字 将网格线点的数字改为文字 范例3-12:plotxy12.mx = 0:0.1:4*pi;plot(x, sin(x)+sin(3*x)set(gca, ytick, -1 -0.3 0.1 1);% 改变网格线点set(gca, yticklabel, 极小,临界值,崩溃值,极大);% 改变网格线点的文字grid on% 加上网格线 subplot 在一个窗口产生多个图形(图轴) 一般形式为 subplot (m, n, p) 将窗口分为 m n 个区域 下一个 plot 指令绘图于第 p 个区域 p 的算法为由左至右,一列一列 同时画出四个图于一个窗口中 范例3-13:plo

13、txy13.mx = 0:0.1:4*pi;subplot(2, 2, 1); plot(x, sin(x);% 此为左上角图形subplot(2, 2, 2); plot(x, cos(x);% 此为右上角图形subplot(2, 2, 3); plot(x, sin(x).*exp(-x/5);% 此为左下角图形subplot(2, 2, 4); plot(x, x.2);% 此为右下角图形 051015-1-0.500.51051015-1-0.500.51051015-0.500.51051015050100150200subplot(2,2,1)subplot(2,2,3)subpl

14、ot(2,2,2)subplot(2,2,4) 长宽比(aspect ratio) 一般图轴长宽比是窗口的长宽比 可在 axis 指令后加不同的字符串来修改 范例3-14:plotxy14.mt = 0:0.1:2*pi;x = 3*cos(t);y = sin(t);subplot(2, 2, 1); plot(x, y); axis normalsubplot(2, 2, 2); plot(x, y); axis squaresubplot(2, 2, 3); plot(x, y); axis equalsubplot(2, 2, 4); plot(x, y); axis equal ti

15、ght -4-2024-1-0.500.51-505-1-0.500.51-2-10123-2-1012-2-10123-0.500.5axis normalaxis equalaxis squareaxis square tight改变目前图轴长宽比的指令需在 plot 指令之后呼叫才能发挥效用指令说明axis normal使用预设长宽比(等于图形长宽比)axis square长宽比例为 1axis equal长宽比例不变,但两轴刻度一致axis equal tight两轴刻度比例一致,且图轴贴紧图形axis image两轴刻度比例一致(适用于影像显示) colordef 改变图轴与窗口之背

16、景颜色 先呼叫 colordef 指令,其后 plot 指令产生的图形才有效用指令说明colordef white图轴背景为白色,窗口背景为浅灰色colordef black图轴背景为黑色,窗口背景为暗灰色colordef none图轴背景为黑色,窗口背景为黑色(这是 matlab 第 4 版的默认值)画出网格线或画出图轴外围的方形指令说明grid on画出网格线grid off取消网格线box on画出图轴的外围长方形box off取消图轴的外围长方形 在图形或图轴加入说明文字,增进整体图形的可读性指令说明title图形的标题xlabelx 轴的说明ylabely 轴的说明zlabelz 轴

17、的说明(适用于立体绘图)legend多条曲线的说明text在图形中加入文字gtext使用鼠标决定文字的位置 范例3-15:plotxy15.msubplot(1,1,1);x = 0:0.1:2*pi;y1 = sin(x);y2 = exp(-x);plot(x, y1, -*, x, y2, :o);xlabel(t = 0 to 2pi);ylabel(values of sin(t) and e-x)title(function plots of sin(t) and e-x);legend(sin(t),e-x); legend 指令 画出一小方块,包含每条曲线的说明 为特殊符号 产

18、生上标、下标、希腊字母、数学符号等 遵循一般 latex 或 tex数学模式01234567-1-0.8-0.6-0.4-0.200.20.40.60.81t = 0 to 2values of sin(t) and e-xfunction plots of sin(t) and e-xsin(t)e-x text指令 使用语法:text(x, y, string) x、y :文字的起始坐标位置 string :代表此文字 范例3-16:plotxy16.mx = 0:0.1:2*pi;plot(x, sin(x), x, cos(x);text(pi/4, sin(pi/4),leftarr

19、ow sin(pi/4) = 0.707);text(5*pi/4, cos(5*pi/4),cos(5pi/4) = -0.707rightarrow,horizontalalignment, right); horizontalalignment及right指示 text 指令将文字向右水平靠齐01234567-1-0.8-0.6-0.4-0.200.20.40.60.81 sin(/4) = 0.707cos(5/4) = -0.707 使用语法gtext(string) 在图上点选一位置后,string 显示在其上。 gtext 只能用在二维平面绘图 各种二维绘图指令指令说明error

20、bar在曲线加上误差范围fplot、ezplot较精确的函数图形polar、ezpolar极坐标图形hist直角坐标质方图(累计图)rose极坐标质方图(累计图)compass罗盘图feather羽毛图area面积图(第五章特殊图形介绍)stairs阶梯图(第五章特殊图形介绍) 已知资料的误差范围,用 errorbar 表示 以 y 坐标高度 20% 作为做数据的误差范围 范例3-17:plotxy17.mx = linspace(0,2*pi,30);% 在 0 到 2 间,等分取 30 个点y = sin(x);e = y*0.2;errorbar(x,y,e)% 图形上加上误差范围 e

21、-101234567-1.5-1-0.500.511.5误差范围 fplot 指令 对剧烈变化处进行较密集的取样 范例3-18:plotxy18.mfplot(sin(1/x), 0.02 0.2);% 0.02 0.2是绘图范围 0.020.040.060.080.10.120.140.160.180.2-1-0.8-0.6-0.4-0.200.20.40.60.81此区作较精确的取点绘图 polar 指令 产生极坐标图形 范例3-19:plotxy19.mtheta = linspace(0, 2*pi);r = cos(4*theta);polar(theta, r);% 进行极坐标绘图

22、 0.2 0.4 0.6 0.8 13021060240902701203001503301800 直方图(histogram) 对大量的数据,显示数据的分布情况和统计特性 hist指令 将数据依大小分成数堆,将每堆的个数画出 将 10000 个由 randn 产生的正规分布之随机数分成 25 堆 范例3-20:plotxy20.mx = randn(10000, 1);% 产生 10000 个正规分布随机数hist(x, 25);% 绘出直方图,显示 x 数据的分布情%况和统计特性,数字 25 代表数据依%大小分堆的堆数,即是指方图内长条%的个数set(findobj(gca, type, patch), edgecolor, w);% 将长条%图的边缘设定成白色 质方图逼近随机数的机率分布函数,且数据量越大时,逼近程度越高-4-3-2-1012340200400600800100012001400 rose指令 角度:资料大小 距离:资料个数 以极坐标绘制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论