MatLab2第二讲MatLab图形绘制功能
MATLAB图形绘制工具箱的使用方法

MATLAB图形绘制工具箱的使用方法引言:MATLAB是一种强大的科学计算软件,具备丰富的绘图功能。
作为其中的一个重要组成部分,图形绘制工具箱使得用户能够通过一系列简单的操作来创建、编辑和美化各种图形。
本文将介绍MATLAB图形绘制工具箱的使用方法,帮助读者更好地掌握这个功能强大的绘图工具。
一、图形绘制基础在使用MATLAB图形绘制工具箱之前,我们首先需要了解一些基础知识。
MATLAB图形绘制工具箱支持各种类型的图形绘制,包括线图、散点图、柱状图、饼图等等。
我们可以通过使用不同的函数来创建不同类型的图形。
例如,使用plot函数可以绘制线图,scatter函数可以绘制散点图,bar函数可以绘制柱状图,pie函数可以绘制饼图等。
二、创建简单的线图线图是最常见也是最基础的图形类型之一。
在MATLAB中,我们可以通过plot函数来创建线图。
例如,以下代码将绘制一条简单的直线:```matlabx = 0:0.1:10;y = sin(x);plot(x, y);```后,利用sin函数计算了每个x对应的y值,并将其保存在变量y当中。
最后,通过plot函数将x和y传递进去,即可绘制出一条sin函数的曲线。
三、美化图形在创建完基本的图形之后,我们可以通过一系列的操作来美化图形,使其更具吸引力。
MATLAB图形绘制工具箱提供了许多函数来帮助我们实现这个目标。
例如,我们可以使用xlabel函数和ylabel函数来给x轴和y轴添加标签,使用title函数来添加图形标题。
此外,我们还可以通过设置线条颜色、线型、线宽等属性,以及添加网格、坐标轴等来进一步定制图形的样式。
四、创建多个子图有时候,我们希望在一个图像窗口中绘制多个图形,以便进行对比或者展示多个数据。
MATLAB图形绘制工具箱提供了subplot函数来实现这一功能。
通过subplot函数,我们可以将整个图像窗口划分为多个小格子,并在每个小格子中绘制不同的图形。
MATLAB的绘图和图形函数功能学习资料(绘制轮廓、三维图)

MATLAB的绘图和图形函数功能学习资料绘制条形图bar命令绘制二维条形图,下面举个例子来演示如何使用。
示例假设有10名学生,这些学生某次考试获得分数是:75,58,90,87,50,85,92,75,60和95,使用这此分数来绘制条形图如下。
创建脚本文件并键入以下代码 -x = [1:10];y = [75, 58, 90, 87, 50, 85, 92, 75, 60, 95];bar(x,y), xlabel('Student'),ylabel('Score'),title('First Sem:')print -deps graph.epsMATLAB运行文件时,MATLAB显示以下条形图 -绘制等高线两个变量的函数的轮廓线是一个曲线,函数有一个恒定值。
等高线用于通过连接等于高于某一水平的点(如平均海平面)来创建轮廓图。
MATLAB提供了绘制轮廓图的contour函数。
示例下面演示如何生成一个轮廓图,显示给定函数g = f(x,y)的轮廓线。
该函数有两个变量。
所以,必须生成两个独立的变量,即两个数据集x和y。
这可以通过调用meshgrid命令完成。
meshgrid命令用于生成在每种情况下给出x和y范围以及增量规范的元素矩阵。
绘制函数g = f(x,y),其中-5≤x≤5,-3≤y≤3。
对于这两个值,递增0.1。
变量设置为 -[x,y] = meshgrid(–5:0.1:5, –3:0.1:3);MATLAB最后,需要分配这个函数。
使用函数为:x^2 + y^2(注:x和y的平方之和)创建脚本文件并键入以下代码 -[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variablesg = x.^2 + y.^2; % our functioncontour(x,y,g) % call the contour functionprint -deps graph.epsMATLAB执行上面示例代码,得到以下结果 -下面再修改一下代码,使地图上变得有数据标识 -[x,y] = meshgrid(-5:0.1:5,-3:0.1:3); %independent variablesg = x.^2 + y.^2; % our function[C, h] = contour(x,y,g); % call the contour functionset(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)print -deps graph.epsMATLAB执行上面示例代码,得到以下结果 -三维图三维图基本上显示的是由两个变量g = f(x,y)中的函数定义的表面。
第三章 matlab图形绘制

指定
grid 图形中加网格
例3.在同一坐标系下画出sinx和cosx的图形,并适当加 标注.
x=linspace(0,2*pi,30);y=[sin(x);cos(x)]; plot(x,y);grid;xlabel (‘x’);ylabel (‘y’); title(‘sine and cosine curves’); text(3*pi/4,sin(3*pi/4),’\leftarrowsinx’); text(2.55*pi/2,cos(3*pi/2),’cos\rightarrow’)
结果见下图.
4.多幅图形
subplot(m,n,p)可以在同一个图形窗口中画出多个图 形,用法见下例.
x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).* cos(x);v=sin(x)./cos(x); subplot(2,2,1),plot(x,y),title(‘sin(x)’) subplot(2,2,2),plot(x,z),title(‘cos(x)’) subplot(2,2,3),plot(x,u),title(‘2sin(x)cos(x)’) subplot(2,2,4),plot(x,v),title(‘sin(x)/cos(x)’)
plot(x1,y1,x2,y2, …) 在此格式中,每对x,y必须符合 plot(x,y)中的要求,不同对之间没有影响,命令对每 一对x,y绘制曲线.
例1.做出y=sinx在[0,2π]上的图形,结果见下图.
x=linspace(0,2*pi,30); sin(x);plot(x,y)
例2.在同一坐标系下做出两条曲线y=sinx和y=cosx 在[0,2π]上的图形.结果见下图.
MATLAB图形绘制技巧与实例

MATLAB图形绘制技巧与实例介绍:MATLAB是一种功能强大,广泛应用于科学计算和工程领域的软件平台。
它拥有丰富的图形绘制功能,可以用于可视化数据和传达研究成果。
本文将探讨一些MATLAB图形绘制的技巧和提供一些实例,让读者了解如何高效地利用MATLAB 绘制各种类型的图形。
一、基本绘图函数MATLAB中最基本的绘图函数是plot,它可以绘制二维图形。
可以通过指定x和y向量作为输入参数,将数据点连线绘制出来。
除了plot函数,还有其他一些常用的绘图函数,如scatter用于绘制散点图,bar用于绘制条形图,hist用于绘制直方图等。
这些函数具有丰富的参数选项,可以根据需要进行调整,以得到满意的图形效果。
二、自定义图形样式在MATLAB中,可以通过一些简单的命令实现图形样式的自定义。
例如,可以通过修改线型、颜色和点标记等属性,使得图形更加美观和易读。
除了利用内置的属性选项,还可以使用一些自定义的方法,如在plot函数中添加字符串参数来自定义线型和颜色。
三、多图绘制在某些情况下,需要在一个图形窗口中展示多个图形。
MATLAB提供了subplot函数,可以将图形窗口划分为多个小的绘图区域,并在每个区域中绘制不同的图形。
这对于比较不同数据集之间的关系或展示多个实验结果非常有用。
另外,还可以使用hold on和hold off命令,以在同一个图形窗口中绘制多个图形,并在绘制后保持图形的可编辑性。
四、3D图形绘制除了二维图形,MATLAB还支持绘制三维图形。
可以使用plot3函数将数据点绘制成三维曲线或散点图。
也可以使用mesh和surf函数绘制三维表面图,这在可视化函数和曲面的形状时非常有用。
通过调整视角和添加颜色映射等设置,可以使得3D图形更加生动和具有立体感。
五、图形标注和注释为了更好地传达和解释图形的含义,MATLAB提供了一些标注和注释功能。
可以使用xlabel、ylabel和title函数添加坐标轴标签和标题。
Matlab中的图形绘制技巧

MATLAB中的图形绘制技巧概述:MATLAB是一种用于科学计算和数据可视化的强大工具,它提供了丰富的图形绘制功能,使用户能够清晰地展示和分析数据。
本文将介绍一些MATLAB中的图形绘制技巧,帮助读者更加熟悉和灵活运用这些功能。
一、基本图形绘制1.折线图(Line Plot):折线图是用于显示随时间、变量或其他条件变化而变化的数据的理想选择。
例如,假设我们想要展示一段时间内气温的变化趋势,可以使用MATLAB中的plot 函数来生成折线图。
通过在X轴上放置时间(日期)或变量,将温度值绘制在Y 轴上,我们可以清晰地看到气温的变化。
2.散点图(Scatter Plot):散点图用于观察两个连续变量之间的关系。
在MATLAB中,可以使用scatter 函数生成散点图。
例如,我们可以绘制一个散点图来观察身高和体重之间的关系,每个点代表一个人,x轴表示身高,y轴表示体重。
通过观察图形,我们可以直观地看到身高和体重之间是否存在某种关联。
3.柱状图(Bar Plot):柱状图适用于对各个组或类别之间的数值进行比较。
使用bar函数可以在MATLAB中绘制柱状图。
例如,如果我们想要比较不同地区的人口数量,可以使用柱状图将不同地区的人口数量以柱状图的形式展示出来。
不同地区的柱状图高度不同,可以直观地看到不同地区的人口数量差异。
4.饼图(Pie Chart):饼图用于表示不同类别之间的比例关系,MATLAB中的pie函数可以用来生成饼图。
例如,我们可以使用饼图展示一份问卷调查中各个选项的比例,饼图的每个扇区表示一个选项,扇区的面积大小代表该选项占总数的比例。
通过观察饼图,我们可以更加直观地了解各个选项之间的比例关系。
二、高级图形绘制技巧1.子图(Subplot):在MATLAB中,我们可以使用subplot函数创建一个包含多个子图的大图。
通过在subplot函数中指定行数和列数,可以将图形划分为不同的区域,并在每个区域中绘制不同的图形。
Matlab绘图功能

第五章Matlab绘图功能5.1 二维图形的绘制5.1.1 常用的二维图形绘图函数基本的二维绘图函数有plot ——绘制2维曲线;title ——给图形加标题;grid ——显示网格线;xlabel ——给x轴加标记;ylabel ——给y轴加标记;text ——在坐标图中加入文字注释。
π的曲线图。
例:画出函数x=,其中x从0到π2步进100yπ2sin/X=0:pi/100:2*pi;Y=sin(X);plot(X,Y); % 作图grid on; % 网格线显示,若该为grid off则不显示网格ylabel('y=sin 2\pi x'); % Y轴标注,可以有汉字xlabel('x'); % X轴标注,可以有汉字title('function plot y=sin 2\pi x'); % 图标题text(0.5,sin(0.5),'\leftarrow sin 2 \pi 0.5'); % text()可以在指定坐标处写文字标注text(2.3,sin(2.3),'\leftarrow sin 2 \pi 2.3'); % 所有标注中均可使用汉字% 对于特殊符号,如希腊字母,箭头等需要采用LaTeX格式结果如图5.1 所示。
图5.1 基本的二维绘图函数用法5.1.2 图形的线型和颜色控制在命令plot的高级用法中,可以设置作图的线型,标记类型,线和标记的颜色,粗细等特征。
用命令doc LineSpec和doc plot可以查询详细的帮助文档。
线型的定义如下:- solid line (default) 实线-- dashed line 虚线: dotted line 虚点连线-. dash-dot line 点划线常用标记的定义为:+ plus sign 十字标记o circle 小圈标记* asterisk 星号标记. point 黑点标记x cross 叉号标记s square 方框标记d diamond 菱形标记^ upward pointing triangle 上三角标记v downward pointing triangle 下三角标记> right pointing triangle 右三角标记< left pointing triangle 左三角标记p five-pointed star (pentagram) 五角星标记h six-pointed star (hexagram) 六角星标记颜色的定义是:r red 红g green 绿b blue 蓝c cyan 兰绿色m magenta 洋红y yellow 黄k black 黑w white 白另外,利用线型属性和标记属性可以随心所欲地设计作图图式。
matlab软件基础(图形绘制_常用指令)

MATLAB软件基础介绍MATLAB软件的一般命令,数组操作和运算函数;绘图命令,循环和选择结构;通过实例练习解决一些简单问题.2.1 引言MATLAB是MATrix LABoratory的缩写,由美国MathWorks公司开发的工程计算软件,迄今已推出了7.1版.当今数学类科技应用软件可分为两类,一类是数值计算型,如MATLAB,Xmath,Gauss等,这类软件擅长数值计算,对处理大批数据效率高;另一类是数学分析型软件,如Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率高.现在, MATLAB已经发展为适合多学科,功能强大的大型软件,成为高级课程的基本教学工具.如MATLAB可以做:微积分:微分,积分,求极限,泰勒展开,级数求和;代数:求逆,特征值,行列式,代数方程解的简化,数学表达式的指定精度求值;数值分析:插值与拟合,数值微分与积分,函数逼近,代数方程和微分方程的数值解和符号解.统计计算:均值,方差,概率,参数估计,假设检验,相关性和回归分析,统计绘图,随机数产生器等.优化问题的求解:线性规划,非线性规划等问题的求解.动态系统模拟仿真等.它已成为大学生,研究生和博士生必须掌握的基本技能.同时, MATLAB也被研究单位和工业部门广泛应用,使科学研究和解决各种具体问题的效率大大提高.MATLAB集成环境主要包括五部分: MATLAB语言, MATLAB工作环境, 句柄图形,MATLAB数学函数库, MATLAB API (Application Program Interface).MATLAB主要有以下特点:1)运算符和库函数极其丰富,语言简洁,编程效率高. MATLAB除了提供和C语言一样的运算符外,还提供广泛的矩阵和向量运算符.2)图形功能强大.包括对二维和三维数据可视化,图像处理,动画制作等高低层次的绘图命令.3)功能强大的工具箱. 工具箱可分两类:功能性工具箱和学科性工具箱.前者主要用来扩充其符号计算功能,图示建模仿真,文字处理及与硬件实时交互的功能.而学科性工具箱是专业性较强的,如优化,统计,控制,小波,图像处理和通信工具箱等.4)易于扩充.除内部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可修改文件和加入自己的文件,可与库文件一样被调用.2.1.1 安装(Windows操作平台)1.将源光盘插入光驱;2.在光盘的根目录下找到MATLAB的安装文件setup.exe;3.鼠标双击该安装文件,按提示逐步完成安装;4.安装完成后,在程序栏里便有了MATLAB选项.2.1.2 启动在”开始→程序→Matlab→MATLAB”中单击MATLAB.便会出现MATLAB Command Window(即命令窗口).2.2 MATLAB环境MATLAB既是一种语言,又是一个编程环境.2.2.1 命令窗口命令窗口是用户与Matlab进行交互的主要场所. Matlab语句的一般形式为:变量=表达式如:键入:x=4.5回车,将显示x=4.5再键入:y=sin(x*pi)回车,将显示:y=1…;‟ …,‟ …...‟的作用:1.表达式后面跟分号…;‟,将不显示结果;2.跟…,‟或不跟任何符号,将显示表达式的计算结果;3.当一个表达式没写完就需换行时,应在该行末键入…...‟之后再回车换行.如:s=1-1/2+1/3+1/4+sin(3*x*y)-cos(x)...-1/8+1/10+1/20…;‟ …,‟ …...‟的作用:用于命令行编辑的控制键和方向键1.按‟↑‟键,会显示刚才键入的命令行;2.反复按‟↑‟键,可以回调以前键入的所有命令行;3.…↓,‟键可以移动光标;←,→4.还有‟Home‟,‟End‟,‟Esc‟键等. ‟Esc‟清除一行.变量1.以字母开头,后面可跟字母,数字和下短线;2.大小写字母有区别,不超过31个字母.特殊变量名ans 用于结果的缺省变量名; pi 圆周率eps 计算机的最小数; inf 无穷大; NaN 不定量i或j -1的开方; realmin 最小可用正实数 realmax 最大可用正实数工作区接受Matlab命令的内存区域,存储着命令编辑区输入的命令和创建的所有变量值.查看或保存工作区变量:who 或whos 显示当前工作区中的所有变量clear 清除工作区中的所有变量clear(变量名) 清除指定工作区的变量save(文件名) 将当前工作区的变量储存在一个MAT-文件中load(文件名) 调出一个MAT-文件quit回车或单击右上角的‟ ‟,退出工作区.2.2.2 程序编辑器M文件:命令文件和函数文件1. M文件的建立1) 进入程序编辑器(MATLAB Editor/Debug):从‟File‟菜单中选择‟New‟及‟M-file‟项.2) 输入程序3) 保存程序:单击‟save‟按钮,出现一对话框,在文件名一框中键入一文件名,单击‟保存‟.2. 命令M文件及其运行命令M文件:一些命令行的组合,没有输入参数,也不返回输出参数.如: % 文件名exl.mx=4;y=6;z=2;items=x+y+zcost=x*25+y*22+z*99average_cost=cost/items1)在程序编辑窗口输入,以名为exl.m的M文件存磁盘.2)在Matlab命令编辑窗口输入exl,便会顺序执行该文件中的命令.3. 函数M文件及其调用函数M文件的形式为:fuction [输出变量列表]=函数名(输入变量列表)函数体语句;如:function f=f1(x)f=100*(x(2)-x(1)^2)^2-(1-x(1))^2;(注意函数M文件的文件名必须与其函数名相同)调用格式:x=[2 3];f=f1(x)结果为:f=992.2.3 文件管理what 返回当前目录下的M,MAT,MEX文件的列表dir 列出当前目录下的所有文件cd 显示当前的工作目录type test 在命令窗口下显示test.m的内容delete test 删除M文件test.mwhich test 显示M文件test.m所在的目2.3 数组和函数2.3.1 数组的运算1) 数组的简单构造:数组常采用‟:‟和函数‟linspace‟两种输入方式,如:x=1:5 (从1到5公差为1的等差数组)x=0:0.1:1 (从0到1,公差为0.1)x=linspace(0,pi,11) (11个从0到pi的等间隔数) 2) 数组的运算设a=[a1 a2 a3],b=[b1 b2 b3],c=标量标量加法a+b=[ a1+c a2+c a3+c]乘法 a*c=[ a1*c a2*c a3*c]数组加法 a+b=[ a1+ b1 a2+ b2 a3+ b3]乘法 a.*b= [a1*b1 a2*b2 a3*b3]数组右除 a./b= [a1/b1 a2/b2 a3/b3]左除 a.\b= [b1 /a1 b2/ a2 b3/ a3]数组求幂 a.^c=[ a1^c a2^c a3^c]c. ^a=[ a1^c a2^c a3^c]a.^b= [a1^b1 a2^b2 a3^b3] sort(v) 按升序排列max(v) 求最大值 min(v) 求最小值 sum(v) 求和mean(v) 求平均2.3.2 矩阵的创建1) 矩阵的直接定义键入: A=[1 2 3;4 5 6]或键入:A=[1 2 34 5 6 ]2) 特殊矩阵zeros(m,n) ones(m,n) eye(n) rand(m,n) diag(v) triu(x)3) 矩阵的剪裁和拼接键入:A=[1 2 3 ;4 5 6; 7 8 9];A(3.:) %A的第三行输出:ans= 7 8 9键入:B=A(2:3,:) %A的第二,三行输出:B=4 5 67 8 9键入:A(:,1) %A的第一列输出:ans=147输入: C=[B,zeros(2,1)]输出: C=4 5 6 07 8 9 02.3.3 矩阵的运算+ 矩阵加法–矩阵减法 * 乘法 , 转置 ^ 乘幂 / 左除 \ 右除如:A是可逆矩阵,AX=B的解是A左除B,即X=A\B; XA=B的解X= B/A. rank(A) 矩阵秩 inv(A) 矩阵的逆 det(A) 行列式orth(A) 正交化 poly(A) 特征多项式2.3.4 数学函数sin(x) cos(x) tan(x) cot(x) exp(x) log(x) log10(x) sqrt(x) 平方根+方向取整朝零方向取整 fix(x); 朝∞-方向取整floor(x); 朝∞ceil(x); 四舍五入到最近的整数round(x); 符号函数sign(x).2.4 图形功能2.4.1 二维图形1) 基本绘图命令plot(x, y, …color-linestyle-marker‟)x, y------转折点; color-linestyle-marker-------连线颜色,线型,数据点图标.颜色:y黄 r红 g绿 b 蓝 w 白 k 黑 m紫 c 灰 -实线 :点线 --虚线数据点图标: . 小黑点 +加法 *星号 O(不是零!是o,p,q的o)小圆圈 pentagram 五角星x=1:8;y=sin(x);plot(x,y,'k : O')plot(x,y,' O')x=0:0.1:2*pi; y=sin(x); plot(x,y, 'r:o');plot(x,y, 'r :');2) 坐标系的控制axis([xmin xmax ymin ymax]) [ ]中分别给出X轴和Y轴的最小,最大值;axis equal X轴和Y轴的单位长度相同. axis squrare 图框呈方形 axis off 取消坐标轴3) 图形标注x=linspace(0,2*pi,30);y=[sin(x);cos(x)];plot(x,y);grid;xlabel('x');ylabel('y');title('sine and cosine curves');text(3*pi/4,sin(3*pi/4),'\leftarrowsinx');text(3*pi/2,cos(3*pi/2),'cosx\rightarrow',...'HorizontalAlignment','right');(以上命令行可以形成一个M文件).hold on 把新的图形画在原来图形上.grid 在图形上加网格 xlabel ylabel 对X,Y轴加注 title 给整个图形加标题text gtext 在图形中特定位置加字符串.若使用gtext('sinx')代替命令text,则在图形窗口会出现十字线,其交点是字符串位置.移动鼠标可移动交点,点击鼠标即可将字符串固定.输出结果如下图:4) 多幅图形在同一画面中的多幅不同坐标系的图形,如何作?x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).*co s(x);v=sin(x)./cos(x);subplot(2,2,1),plot(x,y),title('sin(x)'); subplot(2,2,2),plot (x,z),title('cos(x)');subplot(2,2,3),plot (x,u),title('2sin(x)cos(x)'); subplot(2,2,4),plot (x,v),title('sin(x)/cos(x)');2.4.2 三维图形1) 空间曲线例:作螺旋线⎪⎩⎪⎨⎧===.,c os ,s i n t z t y t x 键入:t=0:pi/51:10*pi;plot3(sin(t),cos(t),t);2) 带网格的曲面 作曲面5.75.7,sin 2222≤≤-++=x y x y x z .键入:x=-7.5:0.5:7.5;y=x;[X,Y]=meshgrid(x,y); % 三维图形的X,Y 数组R=sqrt(X.^2+Y.^2)+eps; % +eps 是为防止出现0/0Z=sin(R)./R;mesh(X,Y,Z); % 三维网格表面3) 等高线4) 条形图和面积图: 某产品上半年的销售利润profit,每月份售出产品的产值expense.x=1:1:6;expense=[ 21 34 89 25 22 90];profit=[ 10 20 60 11 9 70] sale=[ expense; profit]; area(x,sale)2.5 M文件的编写2.5.1 M文件1) 命令M文件:一些命令行的组合. 函数M文件:定义函数的程序,具有一定的特定格式;如: 命令M文件:x=[2 3];f=cos(x)函数M文件:function f=cost(x)f=100*(x(2)-x(1)^2)^2…-(1-x(1))^2;2) 函数M文件的形式为:function [输出变量列表]=函数名(输入变量列表)函数体语句:2.5.2 四种循环和选择控制结构1) while关系表达式 { statements }ends=0;n=1while s<=100s=s+n^2;n=n+1;endn,s2) forfor x=x1:step:xn{ statements }end如: for k=1:4x(k)=1/k;endformat rat %设置输出格式为有理数x例:建立一个函数M文件求自然数n的阶乘. function f=jch(n)f=1;for i=1:nf=f*I;end3) switch 表达式(标量或字符串)case 值1,语句体1case {值2.1,值2.2,…}语句体2…otherwise,语句体nendfor x=x1:step:xn{ statements }endMATLAB绘图第5章 MATLAB绘图5.1 二维数据曲线图5.2 其他二维图形5.3 隐函数绘图5.4 三维图形5.5 图形修饰处理5.6 图像处理与动画制作5.1 二维数据曲线图5.1.1 绘制单根二维曲线plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
MATLAB图形绘制

MATLAB 作为一个强大的绘图工具,有很强的绘图功能,不仅可以绘制普通函数的二维、三维甚至思维图形,而且可以绘制专业图像,如直方图、饼图等。
一、MATLAB 二维绘图MATLAB 提供了多个函数用于图形绘制,以矢量或矩阵作为输入参数,主要通过描点法绘图。
1.1 用plot 函数绘图plot 函数是MATLAB 中最常用的绘图函数,可以用来绘制单条或多条曲线,是MATLAB 绘图的基础。
1. 用plot 绘制函数y=sin(x)的图形,因为MATLAB 是描点法的,因此要将变量离散化。
x=-pi:0.1:pi;y=sin(x);plot(x,y)正弦函数图形2. 用plot 绘制图形可以通过交换参数位置来交换坐标轴,如绘制的图形,322++=x x y x=-3:0.1:1;y=x.^2+2*x+3;subplot(121),plot(x,y)subplot(122),plot(y,x)多项式函数在不同坐标系下的图形3. 绘制多条曲线x=linspace(0,2*pi,100);plot(x,sin(x),x,cos(x))plot 同时绘制多条曲线4.改变颜色及图线形态x=linspace(0,2*pi,100);plot(x,sin(x),'cs',x,cos(x),'g*')自定义颜色和线型的正余弦函数图形5. 用axis([xmin,xmax,ymin,ymax])函数确定坐标轴的范围x=linspace(0,2*pi,100);plot(x,sin(x),'cs',x,cos(x),'g*')axis([0,6.3,-1.2,1.2])用axis函数调整过的图形前面主要讲的是两个函数均为向量的形式,下面介绍一下其他变量的输入形式。
6. plot(x,Y),x为向量,Y为矩阵。
如果x的元素个数与Y的列数相等,则采用矩阵Y的列向数据;如果x的元素个数与Y的行数相等,则采用矩阵Y的行向数据;若Y是方阵,则采用列向量数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 / 24 MatLab & 数学建模
第二讲 MatLab图形绘制功能 一、 二维平面图形 基本绘图函数 命 令 含 义 plot 建立向量或矩阵各队队向量的图形 loglog x、y轴都取对数标度建立图形 semilogx x轴用于对数标度,y轴线性标度绘制图形 semilogy y轴用于对数标度,x轴线性标度绘制图形 title 给图形加标题 xlabel 给x轴加标记 ylabel 给y轴加标记 text 在图形指定的位置上加文本字符串 gtext 在鼠标的位置上加文本字符串 grid 打开网格线 plot绘图函数的叁数 字元 颜色 字元 图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线
hold on 命令用于在已画好的图形上添加新的图形 2 / 24
plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线:
x=0:0.001:10; % 0到10的1000个点的x座标 y=sin(x); % 对应的y座标 plot(x,y); % 绘图
Y=sin(10*x); plot(x,y,'r:',x,Y,'b') % 同时画两个函数 3 / 24
• 若要改变颜色,在座标对後面加上相关字串即可: x=0:0.01:10; plot(x,sin(x),'r')
若要同时改变颜色及图线型态(Line style),也是在坐标对後面加上相关字串即可:
plot(x,sin(x),'r*') 4 / 24
用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围 axis([0,6,-1.5,1])
MATLAB也可对图形加上各种注解与处理: xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('余弦函数'); % 图形标题 legend('y = cos(x)'); % 图形注解 gtext('y = cos(x)'); % 图形注解 ,用鼠标定位注解位置 grid on; % 显示格线
fplot的指令可以用来自动的画一个已定义的函数分布图,而无须产生绘图所须
要的一组数据做为变数。其语法为fplot('fun',[xmin xmax ymin ymax]),其中 fun为一已定义的函数名称,例如 sin, cos等等;而 xmin, xmax, ymin, ymax 则是设定绘图横轴及纵轴的下限及上限。 5 / 24
以下的例子是将一函数 f(x)=sin(x)/x 在-20>> fplot('sin(x)./x',[-20 20 -0.4 1.2])
【例】画椭圆1232222yx a = [0:pi/50:2*pi]'; %角度 20 X = cos(a)*3; %参数方程 Y = sin(a)*2; plot(X,Y); xlabel('x'), ylabel('y'); title('椭圆') 6 / 24
图形窗口的分割一般用命令subplot: subplot(2,2,1);
subplot(2,3,4); 7 / 24 MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。 小整理:其他各种二维绘图函数 bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图
当资料点数量不多时,长条图是很适合的表示方式: close all; % 关闭所有的图形视窗
x=1:10;
y=rand(size(x));
bar(x,y); 8 / 24
如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量:
x = linspace(0,2*pi,30);
y = sin(x);
e = std(y)*ones(size(x));
errorbar(x,y,e)
对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:
fplot('sin(1/x)', [0.02 0.2]); % [0.02 0.2]是绘图范围 9 / 24
若要产生极座标图形,可用polar: theta=linspace(0, 2*pi); r=cos(4*theta); polar(theta, r);
对於大量的资料,我们可用hist来显示资料的分 情况和统计特性。下面几个命令可用来验证randn产生的高斯乱数分 :
x=randn(5000, 1); % 产生5000个 =0,=1 的高斯乱数
hist(x,20); % 20代表长条的个数 10 / 24
rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,并用极座标绘制表示:
x=randn(1000, 1);
rose(x);
stairs可画出阶梯图: x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stairs(x,y); 11 / 24
stems可产生针状图,常被用来绘制数位讯号: x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
stem(x,y);
stairs将资料点视为多边行顶点,并将此多边行涂上颜色: x=linspace(0,10,50);
y=sin(x).*exp(-x/3);
fill(x,y,'b'); % 'b'为蓝色 12 / 24
feather将每一个资料点视复数,并以箭号画出: theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
feather(z);
compass和feather很接近,只是每个箭号的起点都在圆点: theta=linspace(0, 2*pi, 20);
z = cos(theta)+i*sin(theta);
compass(z); 13 / 24
二、 三维立体图形 三维绘图函数 contour 二维等值线图,即从上向下看contour3等值线图 contour3 等值线图 fill3 填充的多边形 mesh 网格图 meshc 具有基本等值线图的网格图 meshz 有零平面的网格图 pcolor 二维伪彩色绘图,即从上向下看surf图 plot3 直线图 quiver 二维带方向箭头的速度图 surf 曲面图 surfc 具有基本等值线图的曲面图 surfl 带亮度的曲面图 waterfall 无交叉线的网格图
三维绘图工具 axis 修正坐标轴属性 clf 清除图形窗口 clabel 放置等值线标签 close 关闭图形窗口 figure 创建或选择图形窗口 getframe 捕捉动画桢 grid 放置网格 griddata 对画图用的数据进行内插 hidden 隐蔽网格图线条 hold 保留当前图形 meshgrid 产生三维绘图数据 movie 放动画 moviein 创建桢矩阵,存储动画 shading 在曲面图和伪彩色图中用分块、平滑和插值加阴影 subplot 在图形窗口内画子图 text 在指定的位置放文本 title 放置标题 view 改变图形的视角 xlabel 放置x轴标记 ylabel 放置y轴标记 zlabel 放置z轴标记 函数view view(az,el) 设置视图的方位角az和仰角el view([az,el]) view([x,y,z]) 在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([0 0 1])=view(0,90) 14 / 24
view(2) 设置缺省的二维视图,az=0,el=90 view(3) 设置缺省的三维视图,az=-37.5,el=30 [az,el]=view 返回当前的方位角az和仰角el view(T) 用一个4×4的转置矩阵T来设置视图 T=view 返回当前的4×4转置矩阵
plot3命令将绘制二维图形的函数plot的特性扩展到三维空间图形。函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。plot3一般语法调用格式是plot3(x,y,z,S),这里x,y和z是向量或矩阵,S是可选的字符串,用来指定颜色、标记符号和/或线形(s可以省略)。
三维螺旋线例子: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid %添加网格
plot3可画出空间中的曲线: t=linspace(0,20*pi, 501); plot3(t.*sin(t), t.*cos(t), t); %注意用点乘 .*