MATLAB入门教程(2) 二维绘图
MATLAB二维平面绘图教程
MATLAB 程序设计入门篇:二维平面绘图
NCU MCM 暑期 培训
Plot根本绘图-3 (II)
1.5
1
0.5
0
-0.5
-1
-1.5
0
1
2
3
4
5
6
7
MATLAB 程序设计入门篇:二维平面绘图
NCU MCM 暑期 培训
Plot根本绘图-4 (I)
只给定一个矩阵 y
对矩阵 y 的每一个列向量(Column Vector) 作图
曲线符号符号 圆形 加号 叉号 星号 点号 朝上三角形 朝下三角形
MATLAB 程序设计入门篇:二维平面绘图
NCU MCM 暑期 培训
plot 指令的曲线线标 (II)
plot 指令的曲线线标字符串 > < square diamond pentagram hexagram None
曲线符号符号 朝右三角形 朝左三角形 方形 菱形 五角星形 六角星形 无符号(预设值)
8
6
4
2
0
-2
-4
-6
-8
-8
-6
-4
-2
0
2
4
6
8
10
MATLAB 程序设计入门篇:二维平面绘图
提示
NCU MCM 暑期 培训
一般状况下,MATLAB 将矩阵视为列向量的集 合
对只能处理向量的函数(Ex : max、min、 mean)
给定一个矩阵,函数会对矩阵的列向量一一 进展处理或运算
y 是对应的 y 坐标
只给定一个向量
该向量则对其索引值 (Index)作图
plot(y)和plot(1:length(y), y)会得到一样的结果
Matlab中二维图的绘制
Matlab中二维图的绘制
(1)准备图形数据
(2)选择图形的显示位置
(3)调用绘图指令并设置参数
(4)选择线性和标记属性
(5)设置坐标范围及网格线
(6)给图形加注释
(7)图形输出
网格图形是指连接相邻数据点形成的网状曲面,数据点是x-y平面的矩形网格上点的z轴坐标值。
网格图的绘制步骤如下:
(1)在x-y平面上指定一个矩形区域,采用与坐标轴平行的直线进行分格;
(2)计算矩形网格点的z轴坐标值,得到三维空间的数据点;(3)利用以上得到的数据点,将x-z平面或者y-z平面内,以及平行平面内的数据点连接,形成网格图。
MATLAB二维图形处理
一、基本绘图指令 (二维线形图 plot)
形式
1. 向量式 plot(V) 例:hx5.m 2. 参数式plot(x,y) 例:hx.m 3. 矩阵式plot(Y) 例:hx6.m 4. 混合式plot(X,Y) 5. 复向量式plot(Z)
二、线型、顶点标记和颜色
颜色 黄 洋红 蛋青 红 绿 蓝 白 黑 y m c r g b w k
四、特殊图形
1. 带状图 ribbon 例:创建一个peaks函数的条状图 hx9.m 2. 二维条形图 bar 例:绘向量Y的条形图 hx10.m 三维条形图 bar3 bar3h 例: 3. 面积图 area 例:hx12.m
4. 带状图 ribbon 例:创建一个peaks函数的条状图 hx9.m 5. 二维条形图 bar 例:绘向量Y的条形图 hx10.m 三维条形图 bar3 bar3h 例: 6. 面积图 area 例:hx12.m
线型 实线 点线 点虚线 虚线
: -. --
顶点 实点 . 圆圈 o 乘号 x 加号 + 星号 * 方块 s 钻石 d
顶点 向下三角 向上三角 向左三角 向右三角 五角星 六边形
v ^ < > p h
三、三维线形图(plot3)
例1:绘一个三维线形图 hx7.m 例2:用矩阵数据绘图 hx8.m
5. 二维火柴杆图 stem 例:创建10个随机数的火柴杆图 hx24.m 三维火柴杆图 stem3 例:创建一个三维火柴杆图 hx25.m 6. 阶梯图 stairs 例:创建一个余弦波的阶梯图 hx26.m
7. 罗盘图 compass 例:绘矩阵特征值的罗盘图 hx27.m 8. 羽列图 feather 9. 多边形面积图 polyarea
数学2-用MATLAB绘制二维-三维图形(lq)
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,
列j,和元素的值v(按所在位置先后 顺序输出)
A=[3 2 0; -5 0 7; 0 0 1]; [i,j,v]=find(A)
i= 1 2 1 2 3 j= 1 1 2 3 3 v = 3 -5 2 7 1
[X,Y]=meshgrid(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: z=f(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat %去除网格线。
例2-7画出矩形域[-1,1]×[-1,1]旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; [X,Y]=meshgrid(x,y); %生成矩形区[-1,1]×[-1,1]的网格坐标矩阵 Z=X.^2+Y.^2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲面z=x2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
用matlab绘制二维、三维图形
2.1二维图形的绘制
2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。
使用该命令,软件将开辟一个图形窗口,并 画出连接坐标面上一系列点的连线。
例2-5 采用不同形式(直角坐标、参数、极坐标),画出 单位圆x2+y2=1的图形。
分析:对于直角坐标系方程,y= 1 x2,对于参数方 程x=cost,y=sint,t[0,2 pi] ,利用plot(x,y)命令可以实现。 而在极坐标系中单位圆为r=1(1+0t),利用polar(t,r)命 令实现。
利用MATLAB 绘制二维图形
利用MATLAB 绘制二维图形
1. 显函数的图形绘制
MATLAB 中二维显函数的调用格式为: (1)plot (x,y,s) x为自变量,y为函数,两者均为同长度的向量,分别表示点的横坐标 和纵坐标. (2)plot (x1,y1,s1,x2,y2,s2 , ,xn,yn,sn) s1,s2 , ,sn是颜色、标记点和线型参数, 可叠加使用. 若不设置参数s ,则默认画实线.常用参数见表8-5所示 .
例2
解
x linspace0 ,2 pi ,50; %设置自变量的范围 y1 sin x; y2 cos x;
plot(x ,y1,k ,x,y2 ,m ) %取不同参数画两条曲线 运行结果如图8-5所示 .
图8-5
利用MATLAB 绘制二维图形
2. 隐函数的图形绘制
MATLAB中二维隐函数的调用格式为 : (1)ezplot(fun,[a ,b]) fun为隐函数表达式,需用单引号界定 . [a ,b]用来指定自变
利用MATLAB 绘制二维图形
表8-5
利用MATLAB 绘制二维图形
例1
解
x 2 :0 . 01:2 ; %定义数组变量x ,从 2开始到2为止 ,步长 0.01 y x.2 1; %计算对应的函数值 plot (x ,y) 运行结果如图8-4所示 .
图8-4
利用MATLAB 绘制二维图形
量的取值范围,默认范围为2π ,2π .
(2)ezplot(funx ,funy,[a ,b])funx ,funy是用单引号界定的x(t)和y(t)的表达
式 ,[a ,b]为参数的取值范围,默认范围为0 ,2π .
利用MATLAB 绘制二维图形
例3
MATLAB二维图形绘制的基本操作
6、坐标轴范围的设定
axis函数 x=0:pi/30:4*pi; plot(x,sin(x)); axis([0 4*pi -2 2])
‘hexagram’ 六角星
‘square’
□
2、离散序列图形的绘制
(1)stem(y) 以x=1,2,3,…为各个数据点的x坐标,以y向量的各个对 应元素为y坐标,在(x,y)坐标点画一个空心小圆圈,并连接 一条线段到X轴. x=[0,1,1,2,2,3,3,4,4] y=[1,1,0,0,1,1,0,0,1] stem(x,y)
其中包含了MATLAB的各种命令 M函数文件(functions)
M文件的编辑、保存、运行
M脚本文件(scripts)
theta=-pi:0.01:pi; rho(1,:)=2*sin(5*theta).^2;
rho(2,:)=cos(10*theta).^3;
rho(3,:)=sin(theta).^2; rho(4,:)=5*cos(3.5*theta).^3; for k=1:4 polar(theta, rho(k,:)) pause end
%axis([0 5 0 2])
2、离散序列图形的绘制
(2)stem(x,y,’option’) x=[0,1,1,2,2,3,3,4,4] y=[1,1,0,0,1,1,0,0,1]
stem(x,y,'r-.')
%axis([0 5 0 2])
2、离散序列图形的绘制
(3)stem(x,y) x=0:pi/30:3*pi; y=sin(x);
四、图形的绘制
1、二维图形的绘制
(1)plot(x)
当y为一向量时,以y的序号为X轴,按向量y的值绘制曲线.
如何在Matlab中进行二维和三维绘图
如何在Matlab中进行二维和三维绘图在科学研究和工程领域,数据可视化是一项十分重要的任务,而Matlab作为一种功能强大的数值计算和数据分析软件,自然也提供了丰富的绘图功能。
本文将介绍如何在Matlab中进行二维和三维绘图,并探讨一些常见的绘图技巧和应用。
一、二维绘图Matlab中的二维绘图是最常见和基础的绘图任务之一。
在绘制二维图形时,我们通常会用到plot函数。
这个函数可以接受单个向量作为输入,将这个向量的值作为y轴上的数据点,自动生成与该向量长度相同的x轴坐标。
例如,我们可以用以下代码绘制一个简单的二维折线图:```x = 0:0.1:2*pi;y = sin(x);plot(x, y);```上述代码中,x参量取从0到2π的均匀间隔的值,而y则是根据x计算得到的sin函数值。
plot函数会自动根据输入绘制折线图,并添加相应的轴标签和图例。
在实际应用中,我们经常需要绘制多条曲线在同一个坐标系中进行对比分析。
可以通过在plot函数中传入多个x和y向量实现这一功能。
例如,我们可以通过以下代码绘制一个简单的双曲线图:```x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);plot(x, y1, x, y2);```这样,就会在同一个坐标系中同时绘制sin曲线和cos曲线。
除了折线图,Matlab还支持其他常见的二维绘图类型,如散点图、柱状图和面积图等。
这些绘图类型可以通过不同的函数实现,例如scatter、bar和area等。
这里不再一一赘述,读者可以通过Matlab的帮助文档或官方网站了解更多的用法和示例。
二、三维绘图除了二维绘图,Matlab也提供了丰富的三维绘图功能,用于可视化更为复杂的数据和模型。
在绘制三维图形时,我们通常会用到surf函数。
这个函数可以接受两个二维矩阵作为输入,将这两个矩阵的值分别作为x、y轴上的坐标,而将第三个二维矩阵的值作为z轴上的数据点。
MATLAB二维绘图
第2章 MATLAB二维绘图22.1 二维绘图基本流程22.2 二维图形的基本绘图命令42.2.1 高级绘图命令42.2.2低级绘图命令62.2 二维图形的修饰82.2.1 坐标轴的调整82.2.1.1 调整坐标轴的围82.2.1.2 调整坐标轴的状态92.2.1.3 保存坐标轴的围112.2.1.4 保存坐标轴的状态112.2.2画出或取消网格线122.2.3设置坐标轴的名称122.2.4设置图形标题132.2.5在图形中显示文字142.2.5.1用坐标轴确定文字位置142.2.5.2用鼠标确定位置显示文字152.2.6 图形的标定和颜色条162.2.7 使用绘图工具栏标注图形182.3 填充图形的绘制192.4 多坐标系绘图与图形窗口的分割202.4.1 图形叠印法202.4.2 子图的绘制212.5 特殊坐标图形的绘制222.5.1 绘制极坐标图形232.5.2对数/半对数坐标系绘图232.6 特殊二维图形的绘制242.4.3 直方图242.4.1 柱状图和面积图262.4.2 饼图282.4.4 离散数据绘图282.4.5 等高线图302.4.6 向量图312.7 函数绘图342.7.1 fplot函数342.7.2函数function的定义352.8 工作空间直接绘图362.9 手工绘图方式382.10 小结41第2章 MATLAB二维绘图数据可视化是MATLAB一项重要功能,它所提供的丰富绘图功能,使得从繁琐的绘图细节中脱离出来,而能够专心于最关心的本质。
通过数据可视化的方法,工程科研人员可以对自己的样本数据的分布、趋势特性有一个直观的了解。
本章将重点介绍MATLAB二维图形的绘制方式,并按照完整的步骤来说明一个图形产生的流程,以便将数据以图形形式来识别。
通过本章,读者不仅能掌握二维绘图的基本流程,而且能熟练使用MATLAB中相应的绘图命令、函数来绘制二维图形。
2.1 二维绘图基本流程在MATLAB中绘制图形,通常采用以下7个步骤:(1)准备数据;(2)设置当前绘图区;(3)绘制图形;(4)设置图形中曲线和标记点格式;(5)设置坐标轴和网格线属性;(6)标注图形;(7)保存和导出图形。
MATLAB画图(包括二维三维画图)
Matlab教程2_绘图_ 二维0Matlab绘图Matlab二维图形的绘制本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MAT LAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2. 在MATLA B下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MA TLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Pr opert ies项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATL AB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;2) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴 (缺省值).3)通常MATL AB的坐标系是长方形,长宽比例大约是 4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y对应于其元素序数的二维曲线图, 如果y为复数向量, 则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y矢量有10个元素,x坐标自动定义为[1 2 3 4 5 6 7 8 9 10].图形为:2.plot(x,y)------ 绘制由x,y所确定的曲线.1)x,y是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x为横坐标,y为纵坐标的图形.如画正弦曲线:t=0:0.1:2*pi; y=sin(t);plot(t,y)2)当 plot(x,y)中,x是向量,y是矩阵时,则绘制y矩阵中各行或列对应于向量x的曲线.如果y阵中行的长度与x向量的长度相同,则以y的行数据作为一组绘图数据;如果y阵中列的长度与x向量的长度相同,则以y的列数据作为一组绘图数据;如果y阵中行, 列均与x向量的长度相同,则以y的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)]; plot(x,y)3) 如果x,y是同样大小的矩阵,则plot(x,y)绘出y中各列相应于x中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x'; y=y';plot(x,y)在这个例子中,x------ 3x101,y------3x101,所以第一个p lot按列画出 101条曲线,每条3个点;而x'------101x3,y'------ 101x3,所以第二个p lot 按列画出3条曲线,每条101个点.3. 多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plo t格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamo nd用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的 '+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLA B中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了ho ld on后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWi dth),标记点的边缘颜色(Marker EdgeC olor),填充颜色 (Marker FaceC olor)及标记点的大小(Marker Size)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWi dth',2,... %设置线的宽度为2'Marker EdgeC olor','k',... %设置标记点边缘颜色为黑色'Marker FaceC olor','y',... %设置标记点填充颜色为黄色'Marker Size',10) %设置标记点的尺寸为104. 双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)绘制由x1,y1和x2,y2确定的两组曲线,其中x1, y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'functi on1','functi on2')功能同上,functi on是指那些绘图函数,如plot,semilo gx, loglog等.例如:在一个图形窗口中绘制双Y轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')stem: 绘制stem形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y轴坐标对应的是plot形式的曲线,右边的Y坐标对应的是stem形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilo gx,semilo gy和lo glog函数.1) semilo gx( )绘制以X轴为对数坐标轴的图. 调用格式为:semilo gx(x,y,'属性选项') 其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2) semilo gy( )绘制以Y轴为对数坐标轴的图. 调用格式为:semilo gy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标. 35 3) loglog( )绘制X,Y轴均为对数坐标轴的图形. 其调用格式为:loglog(x,y,'属性选项') 该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplo t(221), semilo gx(x,y);subplo t(222), semilo gy(x,y);subplo t(223), loglog(x,y);4) logspa ce( )函数可按对数等间距地分布来产生一个向量,其调用格式为: x=logspa ce(x1,x2,n)这里,x1 表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用pola r( )函数.其调用格式如下:polar(theta, rho,'属性选项')theta:角度向量,rho:幅值向量,属性内容与plo t函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ,],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四. 绘制多个子图:subplo t( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subp lot函数来实现,其调用格式为:subplo t(n,m,k) 或subpl ot(nmk)n,m分别表示将窗口分割的行数和列数,k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplo t(2,2,1),plot(……)subplo t(2,2,2),……subplo t(2,2,3),……subplo t(2,2,4),……注:subplo t函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title函数其调用格式为:title('字符串')字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylab el函数格式:xlabel('字符串') ylabel(' 字符串')如:xlabel('This is my X axis') ylabel('My Y axis')3)图形说明文字:text和g text函数A.text函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc', 则x1,y1表示规范化窗口的相对坐标,其范围为0到1. (1,1)规范化窗口(0,0)如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线, 移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.5) 给图形加网格:grid函数在调用时直接写grid即可.上面的函数的应用实例:例: 在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid, axis([0 2*pi -1 1]);xlabel('0 leq itt rm leq pi','FontSi ze',12);ylabel('sin(t)','FontSi ze',12);title('正弦函数图形','FontNa me',' 隶书' ,'FontSi ze',16); text(pi,sin(pi),'←sin(t)=0','FontSi ze',12);text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontSi ze',12); text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontSi ze',12,'Horizo ntalA lignm ent','right')5) 在图形中添加图例框:legend函数其调用格式为:A.legend('字符串1', '字符串2', ……)以字符串1,字符串2……作为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)pos指定图例框显示的位置.图例框被预定了6个显示位置:0------ 取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*') legend('曲线1','曲线2','曲线3')6) 用鼠标点选屏幕上的点:ginput函数格式为: [x, y, button]=ginput(n)n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标; y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号: 1----左键; 2----中键; 3----右键. 可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节 MATLAB下图形对象的修改MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root),图形窗口(Figure s),坐标轴(Axes),控件(Uicont rol),菜单(Uimenu),线(Lines),块(Patche s),面(Surfac e),图像 (Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFigure sAxes Uicont rol Uimenu Uicont extme nu (对象菜单) Images Line PatchSurfac e Text对各种图形对象进行修改和控制,要使用MAT LAB的图形对象句柄 (Handle).在MATLA B中, 每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄. 句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等. 利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set函数:用于设置句柄所指的图形对象的属性.Set函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.执行后可返回X轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A. 要对图形窗口的底色进行修改,可用set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B. 要把当前X轴的颜色改为绿色,可用set(gca, 'Xcolor', [0,1,0])C. 还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xtickl abel',['-pi','-pi/2','0','pi /2','pi'])本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置 5个点),用'xtickl abel'来指定刻度的值,由于通常习惯于用角度度量三角函数, 因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorO rder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'revers e'------反向4) 坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量'LineWi dth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xtickl abel','Ytickl abel','Ztickl abel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.6)字体设置属性:'FontAn gle'------ 设置字体角度,选项为: 'normal'------ 正常;'italic'------ 斜体;'obliqu e'------ 倾斜;'FontNa me'------ 字体名称;'FontSi ze'------ 字号大小'FontWe ight'------ 字体的轻重,选项为:'light', 'normal','bold'Matlab绘制三维图形三维曲线plot3函数与plo t函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
Matlab 第二讲 二维绘图
x=peaks;plot(x) x=1:length(peaks);y=peaks;plot(x,y)
10 8 6 4 2 0 -2 -4 -6 -8 0 5 10 15 20 25 30 35 40 45 50
3. 单窗口多曲线分图绘图
subplot —— 子图分割命令 调用格式:
行 列 绘图序号
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
0
1
2
3
4
5
6
7
2.图形加注功能 2.图形加注功能
将标题、坐标轴标记、网格线及文字注 释加注到图形上,这些函数为: title —— 给图形加标题 xlable —— 给x轴加标注 ylable —— 给y轴加标注 text —— 在图形指定位置加标注 gtext —— 将标注加到图形任意位置 grid on(off) —— 打开、关闭坐标网格线 legend —— 添加图例 axis —— 控制坐标轴的刻度
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
0
5
10
0
5
10subplot(3,1,1) ;plot(t,y);
西华大学
XIHUA UNIVERSITY
交通与汽车 工程学院
课程名称
专业软件应用
第二讲
Matlab图形基础(二维) Matlab图形基础(二维) 图形基础
西华大学
XIHUA UNIVERSITY
matlab基础课程2(绘图)
四、MATLAB三维曲面绘图
meshgrid——生成网格矩阵 调用格式:
[X,Y]=meshgrid(x,y)--------生成小矩形顶点的坐
标值矩阵
[X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)
例:x=[1,2,3];y=[1,2,3,4]; [X,Y]=meshgrid(x,y)
xlabel(‘String’)
在当前图形的x轴旁边加入文字内容
ylabel(‘String’)
zlabel(‘String’)
在当前图形的y轴旁边加入文字内容
在当前图形的z轴旁边加入文字内容
图形标注gtext
gtext(‘String’)
在鼠标指定位置上标注
说明:使用gtext指令后,会在当前图形上出现一个十字 叉,等待用户选定位置进行标注。移动鼠标到所需位置按 下鼠标左键,Matlab就在选定位置标上文字。
马鞍面、平面及交线
练习: 二维曲线4-4,4-5 p42 例4-9 p47 例4-11,4-12
三维曲线:
p57 例4-22,4-23,4-24
三维曲面:
p60 例4-26,4-28,4-29,4-30
作业:P79 3,5,9
x=[1 2 3]; y=[3 3 1 473 581 4 4 4] plot(x,y)
plot3与plot的 用法相同
,
x t sin t 例:绘制三维曲线的图像: y t cos t z t
解:matlab命令为:
(0 t 20 )
t=0:pi/10:20*pi; x=t.*sin(t); y=t.*cos(t) ; z=t; plot3(x,y,z)
MATLAB 程式设计入门篇 二维平面绘图
Plot基本繪圖-1
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
說明
linspace(0, 2*pi) 產生從 0 到 2*pi且長度為 100 (預設值)的向量 x y 是對應的 y 座標 則plot會進行該向量則對 其索引值(Index)作圖 plot(y)和 plot(1:length(y), y)會得 到相同的結果
xmin , xmax:指定 x 軸的最小和最大值 ymin , ymax:指定 y 軸的最小和最大值
圖軸控制範例-1 (I)
畫出正弦波在 y 軸介於 0 和 1 的部份
範例3-10:plotxy10.m
x = 0:0.1:4*pi;
y = sin(x); plot(x, y);
% 起始與結束元素為 0 及 4,0.1 為各 % 元素相差值
Plot指令的曲線顏色字串 b 曲線顏色 藍色(Blue) RGB值 (0,0,1)
c
g k m r w y
青藍色(Cyan)
綠色(Green) 黑色(Black) 洋紅色(Magenta) 紅色(Red) 白色 黃色(Yellow)
(0,1,1)
(0,1,0) (0,0,0) (1,0,1) (1,0,0) (1,1,1) (1,1,0)
事實上,我們可將畫出來的曲線看成一個物 件,並進而改變物件的性質。 新範例:plotViaHg01.m
% Plot a sin curve % Set marker to 'o'
x=0:0.5:4*pi; h=plot(x, sin(x)); set(h, 'marker', 'o');
[VIP专享]MATLAB画图(包括二维三维画图)
Matlab教程2_ 绘图_ 二维0Matlab绘图Matlab 二维图形的绘制本章主要介绍2维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2. 在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB函数gcf获得;4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure新建;3)figure命令打开,close命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File菜单中的Print项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit菜单中选择Properties项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由 MATLAB函数gca获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax]) 来重新设定;2) 坐标轴控制:MATLAB的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on则显示坐标轴 (缺省值).3)通常MATLAB的坐标系是长方形,长宽比例大约是 4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y对应于其元素序数的二维曲线图, 如果y为复数向量, 则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y矢量有10个元素,x坐标自动定义为[1 2 3 4 5 6 7 8 9 10].图形为:2.plot(x,y)------ 绘制由x,y所确定的曲线.1)x,y是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x为横坐标,y为纵坐标的图形.如画正弦曲线:t=0:0.1:2*pi; y=sin(t);plot(t,y)2)当 plot(x,y)中,x是向量,y是矩阵时,则绘制y矩阵中各行或列对应于向量x的曲线.如果y阵中行的长度与x向量的长度相同,则以y的行数据作为一组绘图数据;如果y阵中列的长度与x向量的长度相同,则以y的列数据作为一组绘图数据;如果y阵中行, 列均与x向量的长度相同,则以y的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(3,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)]; plot(x,y)3) 如果x,y是同样大小的矩阵,则plot(x,y)绘出y中各列相应于x中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x'; y=y';plot(x,y)在这个例子中,x------ 3x101,y------3x101,所以第一个plot 按列画出 101条曲线,每条3个点;而x'------101x3,y'------ 101x3,所以第二个plot 按列画出3条曲线,每条101个点.3. 多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……) 上面的plot格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的 '+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写: t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWidth),标记点的边缘颜色(MarkerEdgeColor),填充颜色 (MarkerFaceColor)及标记点的大小(MarkerSize) 等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为104. 双Y轴绘图:plotyy()函数.其调用格式为:plotyy(x1,y1,x2,y2)绘制由x1,y1和x2,y2确定的两组曲线,其中x1, y1的坐标轴在图形窗口的左侧,x2,y2的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')功能同上,function是指那些绘图函数,如plot,semilogx, loglog 等.例如:在一个图形窗口中绘制双Y轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')stem: 绘制stem形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y轴坐标对应的是plot形式的曲线,右边的Y坐标对应的是stem形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy和loglog函数.1) semilogx( )绘制以X轴为对数坐标轴的图. 调用格式为:semilogx(x,y,'属性选项') 其中属性选项同plot函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2) semilogy( )绘制以Y轴为对数坐标轴的图. 调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标. 353) loglog( )绘制X,Y轴均为对数坐标轴的图形. 其调用格式为:loglog(x,y,'属性选项') 该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4) logspace( )函数可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2表示向量的终点;n表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')theta:角度向量,rho:幅值向量,属性内容与plot函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四. 绘制多个子图:subplot( )函数MATLAB允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm个部分.分割图形窗口用subplot函数来实现,其调用格式为:subplot(n,m,k) 或subplot(nmk)n,m分别表示将窗口分割的行数和列数,k表示要画图部分的代号,表示第几个图形,nmk三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……注:subplot函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title函数其调用格式为:title('字符串')字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel和ylabel函数格式:xlabel('字符串') ylabel(' 字符串')如:xlabel('This is my X axis') ylabel('My Y axis')3)图形说明文字:text和gtext函数A.text函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc', 则x1,y1表示规范化窗口的相对坐标,其范围为0到1. (1,1)规范化窗口 (0,0)如:text(1,2, '正弦曲线')B.gtext函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线, 移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.5) 给图形加网格:grid函数在调用时直接写grid即可.上面的函数的应用实例:例: 在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid, axis([0 2*pi -1 1]);xlabel('0 leq itt rm leq pi','FontSize',12);ylabel('sin(t)','FontSize',12);title('正弦函数图形','FontName',' 隶书' ,'FontSize',16); text(pi,sin(pi),'←sin(t)=0','FontSize',12);text(3*pi/4,sin(3*pi/4),'←sin(t)=0.707', 'FontSize',12); text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707→','FontSize',12,'HorizontalAlignment','right')5) 在图形中添加图例框:legend函数其调用格式为:A.legend('字符串1', '字符串2', ……)以字符串1,字符串2…… 作为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)pos指定图例框显示的位置.图例框被预定了6个显示位置:0------ 取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*') legend('曲线1','曲线2','曲线3')6) 用鼠标点选屏幕上的点:ginput函数格式为: [x, y, button]=ginput(n)n为所选择点的个数;x,y均为向量,x为所选n个点的横坐标; y为所选n个点的纵坐标.button为n维向量,是所选n个点所对应的鼠标键的标号: 1----左键; 2----中键; 3----右键. 可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节 MATLAB下图形对象的修改MATLAB图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root),图形窗口(Figures),坐标轴(Axes),控件(Uicontrol),菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像 (Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单) Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB的图形对象句柄 (Handle).在MATLAB中, 每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄. 句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set函数:用于设置句柄所指的图形对象的属性.Set函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……)例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X轴的当前颜色属性值.执行后可返回X轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A. 要对图形窗口的底色进行修改,可用set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B. 要把当前X轴的颜色改为绿色,可用set(gca, 'Xcolor', [0,1,0])C. 还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/2','0','pi/2','pi'])本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置 5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数, 因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.二.一些常用的属性如下:1)Box属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4) 坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量'LineWidth'------ 轴的线宽,值为数字'Xgrid','Ygrid','Zgrid'------坐标轴上是否加网格,值为'on'和'off'.5)坐标轴的标尺属性:'Xtick','Ytick','Ztick'------ 标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------ 轴上标度的符号,它的值为与标度位置向量同样大小(向量个数相同)的向量.6)字体设置属性:'FontAngle'------ 设置字体角度,选项为:'normal'------ 正常;'italic'------ 斜体;'oblique'------ 倾斜;'FontName'------ 字体名称;'FontSize'------ 字号大小'FontWeight'------ 字体的轻重,选项为:'light', 'normal','bold'Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
MATLAB入门教程(2) 二维绘图
MATLAB 的二维绘图基础了解了MATLAB 的矩阵和向量概念与输入方法之后,MATLAB 的二维绘图再简单也不过了。
假设有两个同长度的向量 x 和y, 则用plot(x,y) 就可以自动绘制画出二维图来。
如果打开过图形窗口,则在最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。
〖例〗正弦曲线绘制:>> t=0:.1:2*pi;%生成横坐标向量,使其为0,0.1,0.2,...,6.2y=sin(t); % 计算正弦向量plot(t,y) %绘制图形这样立即可以得出如图所示的二维图[4.1(a)]plot() 函数还可以同时绘制出多条曲线,其调用格式和前面不完全一致,但也好理解。
>> y1=cos(t); plot(t,y,t,y1); %或plot(t,[y; y1]), 即输出为两个行向量组成的矩阵。
图形见 4.1(b)。
plot() 函数最完整的调用格式为:>> plot(x1,y1,选项1, x2,y2, 选项2, x3,y3, 选项3, ...)其中所有的选项如表 4.1 所示。
一些选项可以连用,如'-r' 表示红色实线。
由MATLAB 绘制的二维图形可以由下面的一些命令简单地修饰。
如>> xlabel('字符串') % 给横坐标轴加说明>> ylabel('字符串') % 给纵坐标轴加说明,%并自动旋转90度>> title('字符串') % 给整个图形加图题得出的图形如右图所示。
axis() 函数可以手动地设置x,y 坐标轴范围还可以使用plotyy() 函数绘制具有两个纵坐标刻度的图形。
坐标系的分割在MATLAB 图形绘制中是很有特色的,比较规则的分割方式是用subplot() 函数定义的,其标准调用格式为subplot(n,m,k)其中,n 和m 为将图形窗口分成的行数和列数,而k 为相对的编号。
MATLAB二维绘图
第6讲绘制二维图(第5章 MATLAB绘图)目的:1. 掌握绘制二维图形的方法。
2. 掌握绘制图形的辅助操作。
—————————————————————————————————————— 一、最常用的绘制二维图形的函数:plot函数(一)plot函数是最常用的绘制图形的函数,其调用格式为:plot(x,y,name1,value1,name2,value2…)plot函数采用的是描点法做函数的图形。
格式中的x,y是点的x坐标与y坐标,x与y必须是同维向量,这样才能一一对应匹配后产生点。
例如,如果x=[1,2,3],y=[0, 3,1]则plot将描绘(1,0),(2,3),(3,1)这三个点。
格式中的name和value需成对设置,name是描绘时的属性名称,value是对应的属性的值。
例如plot(x,y,’color’,’r’)意思是将描绘的颜色设置成红色。
详见书上P107页。
注:属性名称需用单引号括起来,属性值如果是数字,就不需要用单引号,如果不是数字,需要用单引号括起来。
例如plot(x, y, ’linestyle’, ’--‘ , ’color’ , ’b’ , ’linewidth’ , 1.2)表示点与点之间的连接线(属性名为linestyle)设置为虚线(即属性值为--),颜色属性的值设置成蓝色,连接线的宽度设置成1.2宽。
在这里1.2是数字,所以没有用单引号括起来。
如果不设置属性名称和属性值,只输入plot(x,y)则matlab将默认使用蓝色、连接线默认使用实线、线宽默认使用0.5。
例如plot(1:5,2:6)。
(二)、关于描点时x与y对应生成点的说明1、plot(x,y):当x与y是向量时,以x与y匹配产生的点描点作图,不需要同为行或者同为列,但维度需要一致。
(最基本也是最重要的)例x=[1,2,3]; y=[3,5,7]’ ; plot(x,y); 这里x是行,y是列,但维度一致,所以仍可以匹配产生点。
MATLAB二维绘图
Matlab 二维绘图1 基本绘图函数plotloglogsemilogxsemilogyplotyy2 图形修饰2.1 窗体的控制与分割subplot2.2 色彩与线型、数据点型2.3 坐标系的修饰grid ongrid offgrid minorgridhold onhold offhold allholdbox onbox offboxv=axisaxis autoaxis tightaxis fillaxis ijaxis xyaxis offaxis on2.4 基本xy平面绘图命令plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。
下例可画出一条正弦曲线:close all;x=linspace(0, 2*pi, 100); % 100个点的x座标y=sin(x); % 对应的y座标plot(x,y);小整理:MATLAB基本绘图函数plot: x轴和y轴均为线性刻度(Linear scale)loglog: x轴和y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度●若要画出多条曲线,只需将座标对依次放入plot函数即可:plot(x, sin(x), x, cos(x));●若要改变颜色,在座标对後面加上相关字串即可:plot(x, sin(x), 'c', x, cos(x), 'g');●若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字串即可:plot(x, sin(x), 'co', x, cos(x), 'g*');●图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:axis([0, 6, -1.2, 1.2]);●此外,MATLAB也可对图形加上各种注解与处理:xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线●我们可用subplot来同时画出数个小图形於同一个视窗之中:subplot(2,2,1); plot(x, sin(x));subplot(2,2,2); plot(x, cos(x));subplot(2,2,3); plot(x, sinh(x));subplot(2,2,4); plot(x, cosh(x));MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
matlab二维绘图
三、Matlab绘图举例
例: 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 on; %打开坐标网格线 axis square; %刻度为双
18
y1 y2
三、Matlab绘图举例 例 3: t=0:pi/100:2*pi; 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']);%plot(向量,矩阵)
8
二、Matlab二维绘图基本命令
(一)plot命令
基本形式 polt(x,y)
x 是向量, y 是矩阵,若 x 的长度与 y 的行数相等, 则将 x 与 y 中的各列相对应,绘制多条平面曲线; 若 x 的长度与 y 的列数相等,则将 x 与 y 中的各行 相对应,绘制多条平面曲线。此时 x 的长度必须等 于 y 的行数或列数。
颜色
y m c r g b w k 黄色 棕色 青色 红色 绿色 蓝色 白色 黑色
MATLAB编程基础第讲二维及特殊坐标系二维绘图
(1) 当x是向量,y是有一维与x同维的矩阵 时,则绘制出多根不同颜色的曲线。曲 线条数等于y矩阵的另一维数,x被作为 这些曲线共同的横坐标。
(2) 当x,y是同维矩阵时,则以x,y对应列元 素为横、纵坐标分别绘制曲线,曲线条 数等于矩阵的列数。
(3) 对只包含一个输入参数的plot函数, 当输入参数是实矩阵时,则按列绘制 每列元素值相对其下标的曲线,曲线 条数等于输入参数矩阵的列数。
给坐标加网格线用grid命令来控制。grid on/off命令 控制是画还是不画网格线,不带参数的grid命令 在两种状态之间进行切换。
给坐标加边框用box命令来控制。box on/off命令控 制是加还是不加边框线,不带参数的box命令在两 种状态之间进行切换。
例7 在同一坐标中,可以绘制3个同心圆,并加坐标控制。
谢谢大家!
plot函数最简单的调用格式是只包含一个输入参数:
plot(x) 在这种情况下,当x是实向量时,以该向量元素的下标为横
坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘 制折线图。
x=0:0.1:2*3.14
plot(x); 或者
x=0:0.1:2*3.14
y=sin(x);
plot(y);
二、 绘制多根二维曲线
当输入参数是复数矩阵时,则按列分别 以元素实部和虚部为横、纵坐标绘制 多条曲线。
2.含多个输入参数的plot函数
调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
(1) 当输入参数都为向量时,x1和y1,x2和 y2,…,xn和yn分别组成一组向量对, 每一组向量对的长度可以不同。每一向 量对可以绘制出一条曲线,这样可以在 同一坐标内绘制出多条曲线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由 MATLAB 绘制的二维图形可以由下面的一 些命令简单地修饰。如 >> grid % 加网格线 >> xlabel('字符串') % 给横坐标轴加说明 >> ylabel('字符串') % 给纵坐标轴加说明, %并自动旋转 90 度 >> title('字符串') % 给整个图形加图题 得出的图形如右图所示。 axis() 函数可以手动地设置 x,y 坐标轴范围 还可以使用 plotyy() 函数绘制具有两个纵坐标 刻度的图形。
? ? ? ? ?
FontUnits 属性: 字体大小的单位。如 'points' (磅数,即 pt) 为默认的值,此外, 还可以使用如 下单位 'inches' (英寸)、'centimeters' (厘米)、'normalized' (归一值) 与 'pixels' (像素) 等。 Rotation 属性: 字体旋转角度。可以为任何数值。 Editing 属性: 是否允许交互式修改。选项可以为 'on' 和 'off'。 String 属性: 构成本字符对象的字符串。可以是字符串矩阵。 Interpreter 属性: 是否允许 TeX 格式。选项为 'tex' (允许 TeX 格式) 和 'none' (不允许) 两种, 前者显示的效果好,而后者速度快。 Extent 属性: 字符串所在的位置范围,是只读型的,1x4 向量,前两个值表示字符串所在位置的 左下角坐标,而后两个分量分别为字符对象的长和高。
MATLAB 定义的各种图形对象及其关系如下图所示。
获取和改变对象的属性可以采用 get() 和 set() 函数对来实现。 >> set(句柄, 属性 1,属性值 1, 属性 2,属性值 2,……) >> 属性值=get(句柄,属性) 坐标轴对象时 MATLAB 图形中常用的对象,坐标轴对象可以用 MATLAB 5.3 上的菜单项添加。添加 之后,可以用鼠标改变其大小和形状,其他一些属性说明如下:
? ?
Color 属性: 字符的颜色。该属性的属性值是一个 1x3 颜色向量。 FontAngle 属性: 字体倾斜形式。如正常 'normal' 和斜体 'italic' 等。 FontName 属性: 字体的名称。如 'Times New Roman' 与 '
本文由applefanyቤተ መጻሕፍቲ ባይዱ贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
MATLAB 的二维绘图基础
了解了 MATLAB 的矩阵和向量概念与输入方法之后,MATLAB 的二维绘图再简单也不过了。假设 有两个同长度的向量 x 和 y, 则用 plot(x,y) 就可以自动绘制画出二维图来。如果打开过图形窗口,则在 最近打开的图形窗口上绘制此图,如果未打开窗口,则开一个新的窗口绘图。 〖例〗正弦曲线绘制: >> t=0:.1:2*pi; %生成横坐标向量,使其为 0,0.1,0.2,……,6.2
MATLAB 其他二维图形绘制函数
除了标准的 plot() 函数外,MATLAB 还提供了一些其他函数,具体调用格式和意义请见下表
这里只给出几个例子:
彗星状轨迹绘制:考虑一个给定函数 f(x)=tan(sin(x))-sin(tan(x)) 选定自变量~$x$ 的变化范围为 x 属于 [-π,π], 则可以由下面的函数绘制出不同模式的图形。 >> x=-pi:pi/200:pi; y=tan(sin(x))-sin(tan(x)); comet(x,y);
? ? ? ? ? ? ? ? ?
Box 属性: 表示是否需要坐标轴上的方框,选项可以为 'on' 和 'off', 默认的值为 'on'。本书中在 后面介绍属性值时,将把默认的属性值列在前面。 ColorOrder 属性: 设置多条曲线的颜色顺序,应该为一个 n x 3 矩阵, 可以由 colormap() 函数来 设置。 GridLineStyle 属性: 网格线类型,如实线、虚线等,其设置类似于 plot() 函数的选项,默认值为 ':',见前面的表格。 NextPlot 属性: 表示坐标轴图形的更新方式,'replace' 是默认的选项,表示重新绘制,而 'add' 选 项表示在原来的图形上叠印,它相当于直接使用 hold on 命令的效果。 Title 属性: 本坐标轴标题的句柄。而其具体内容由 title() 函数设定,由此句柄就可以访问到原来 的标题了。 XLabel 属性: x 轴标注的句柄, 其内容由 xlabel() 函数设定。 此外, 类似地还有 YLabel 和 ZLabel 属性等。 XDir 属性: x 轴方向,可以选择 'normal' (正向) 和 'rev' (逆向), 此外 YDir 和 ZDir 属性也是类 似的。 XGrid 属性: 表示 x 轴是否加网格线,可选值为 'off' 和 'on', 此外还类似地有 YGrid 和 ZGrid 选项。 XLim 属性: x 轴上下限,以向量 [xm,xM] 形式给出。此外,还有 YLim 和 ZLim 属性,前面 介绍的 axis() 函数实际上是对这些属性的直接赋值。 XScale 属性: x 轴刻度类型设置,可以为 'linear' (线性的) 和 'log' (对数的)。此外还有 YScale 和 ZScale 属性。
坐标系的分割在 MATLAB 图形绘制中是很有特色的,比较规则的分割方式是用 subplot() 函数定义的, 其标准调用格式为 subplot(n,m,k) 其中,n 和 m 为将图形窗口分成的行数和列数,而 k 为相对的编号。例如在标准的 Bode 图绘制中需要 将窗口分为上下两个部分 (即 n=2, m=1), 分割后上部编号为 1,下部编号为 2。
MATLAB 的图形对象简介
MATLAB 从 4.0 版本开始就提出了句柄图形学 (Handle Graphics) 的概念,为面向对象的图形处理提供了 十分有用的工具。和早期版本的 MATLAB 相比较,其最大区别在于,它在图形绘制时其中每个图形元素 (比如其坐标轴或图形上的曲线、文字等) 都是一个独立的对象。用户可以对其中任何一个图形元素进行单 独地修改,而不影响图形的其他部分,具有这样特点的图形称为向量化的绘图。这种向量化的绘图要求给 每个图形元素分配一个句柄 (handle), 以后再对该图形元素做进一步操作时,则只需对该句柄进行操作即 可。 MATLAB 5.0 版进一步加强了图形绘制的功能,而 5.3 版绘图又具有自己的新特色。例如它提供了新的图 形编辑程序,并定义了一些新的三维绘图函数等。本章将主要介绍 MATLAB 5.3 版本的应用与特性,并 介绍部分有关句柄图形学的内容。其余有关句柄图形学的问题,如窗口特性设置、图形界面设计等项内容 将在第 6 章中讲述图形界面设计内容时详细介绍。MATLAB 6 也在图形显示,特别是三维图形显示与照 相机参数设置等方面引入了新鲜的内容。
极坐标曲线绘制:用 polar(r,t) 函数,其中 r 为幅值向量,t 为角度向量。 〖例〗绘制 ρ=cos(5θ/4)+1/3; 其中 θ 属于[0,8π], 绘制极坐标曲线。 〖解〗 MATLAB 命令 >> t=0:.1:8*pi; r=cos(5*t/4)+1/3; polar(t,r) 利用下面的 MATLAB 提供的绘图命令可以绘制出各种各样的二维曲线。 >> x=-2:0.1:2; y=sin(x); subplot(221); feather(x,y); xlabel('(a) feather()') subplot(222); stairs(x,y); xlabel('(b) stairs()') subplot(223); stem(x,y); xlabel('(c) stem()') subplot(224); fill(x,y,'r'); xlabel('(d) fill()') 考察 MATLAB 的 Gauss 伪随机数发生函数 randn() 的分布效果,首先生成 30,000 个 Gauss 伪随机数, 然后由 hist() 函数绘制出该伪随机数的分布函数,并和概率密度的理论值 相比较。 这一分析的 MATLAB 语句如下 >> y=randn(1,30000); xx=-3.8:0.4:3.8; zz=hist(y,xx); zz=zz/(30000*0.4); x1=-3.8:0.1:3.8; y1=1/sqrt(2*pi)*exp(-x1.^2/2); bar(xx,zz), hold on, plot(x1,y1); hold off 半对数与全对数坐标系: 可以使用 semilogx(), semilogy() 和 loglog()。 >> theta=0:0.1:6*pi; r=cos(theta/3)+1/9; subplot(2,2,1), polar(theta, r); subplot(2,2,2); plot(theta, r); subplot(2,2,3); semilogx(theta, r); grid subplot(2,2,4); semilogy(theta, r), grid