matlab 画图中线型及颜设置
(2010-04-06 11:18:29)
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]) 来重新设定 来重新设定; 可用 29 2) 坐标轴控制:MATLAB 的缺省方式是在绘图时,将所在的坐标系也画出 来,为隐去坐标系,可用 axis off;axis on 则显示坐标轴 可用 (缺省值). 3)通常 MATLAB 的坐标系是长方形,长宽比例大约是 4:3,为了得到一个 正方形的坐标系可用:axis square 4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比 例 的坐标系,可用: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 坐标自动定义为[13 4 5 6 7 8 9 10].图形为: 0 2 4 6 8 10 12 14 16 18 20 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 矩阵中各行或列对应于 30 向量 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(2,:)=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) 01234567 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 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'; figure 31 plot(x,y) 在这个例子中,x------ 3x101,y------3x101,所以第一个 plot 按列画出 101 条曲线,每条 3 个点;而 x'------101x3,y'------ 101x3,所以
第二个 plot 按列画出 3 条曲线,每条 101 个点. 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 3. 多组变量绘图:plot(x1, y1, 选项 1, x2, y2, 选项 2, ……) 上面的 plot 格式中,选项是指为了区分多条画出曲线的 颜,线型及标记点 而设定的曲线的属性.MATLAB 在多组变量绘图时,可将曲线以不同的颜
matlab等高线填充颜,不同的线型及标记点表示出来.这 些选项如下表所示 这 些选项如下表所示: 各种颜属性选项 选 项 意 义 选 项 意 义 'r' 红 'm' 粉红 'g' 绿 'c' 青 32 '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 on plot(t,y2, ':g') plot(t,y3, '*b') hold off 注:在 MATLAB 中,如画图前已有打开的图形窗口,则再画图系统将自动 掉坐标系中已有的图形对象,但设置了 可以保持坐标系中已绘出 擦 掉坐标系中已有的图形对象 但设置了 hold on 后,可以保持坐标系中已绘出 可以保 的图形. 的图形 33 01234567 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 图(a) 还可以进一步设置包括线的宽度(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) %设置标记点的尺寸为 10 设置标记点的尺寸为 绘出图形如下: -0.5 -0.4 -0.3 -0.2
-
0.1 0 0.1 0.2 0.3 0.4 0.5 34 4. 双 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') 图形如下: 0 0 0.5 1 1.5 0 0 0.5 1 1.5 stem: 绘制 stem 形式的曲线(上端带圈的竖线). 绘图结果:两条图线自动用不同的颜区分,两个坐标的颜与图线的颜 相对应,左边的 Y 轴 坐标对应的是 plot 形式的曲线,右边的 Y 坐标对应的 是 stem 形式的曲线. 对数坐标图绘制函数: 二.对数坐标图绘制函数 对数坐标图绘制函数 在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和 loglog 函
数. 1)semilogx( )------绘制以 X 轴为对数坐标轴的对数坐标图 数坐标轴的对数坐标图. 绘制以 轴为对数坐标轴的对数坐标图 其调用格式为:semilogx(x,y,'属性选项') 其 中属性选项同 plot 函数. 该函数只对横坐
标进行对数变换,纵坐标仍为线性坐标. 2)semilogy( )------绘制以 Y 轴为对数坐标轴的对数坐
标图 绘制以 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogy(x,y,'属性选项') 该 函数只对纵坐标进行对数变换,横坐标仍为线性坐标. 35 3)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); 还提供了一个实用的函数:logspace( )函数 可按对数等间距地分 函数, 4)MATLAB 还提供了一个实用的函数 函数 布来产生一个向量,其调用格式为 布来产生一个向量 其调用格式为: 其调用格式为 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) 0.5 1 1.5 30 210
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论