MATLAB 绘图讲解.docx

上传人:b****2 文档编号:1383975 上传时间:2023-04-30 格式:DOCX 页数:16 大小:24.09KB
下载 相关 举报
MATLAB 绘图讲解.docx_第1页
第1页 / 共16页
MATLAB 绘图讲解.docx_第2页
第2页 / 共16页
MATLAB 绘图讲解.docx_第3页
第3页 / 共16页
MATLAB 绘图讲解.docx_第4页
第4页 / 共16页
MATLAB 绘图讲解.docx_第5页
第5页 / 共16页
MATLAB 绘图讲解.docx_第6页
第6页 / 共16页
MATLAB 绘图讲解.docx_第7页
第7页 / 共16页
MATLAB 绘图讲解.docx_第8页
第8页 / 共16页
MATLAB 绘图讲解.docx_第9页
第9页 / 共16页
MATLAB 绘图讲解.docx_第10页
第10页 / 共16页
MATLAB 绘图讲解.docx_第11页
第11页 / 共16页
MATLAB 绘图讲解.docx_第12页
第12页 / 共16页
MATLAB 绘图讲解.docx_第13页
第13页 / 共16页
MATLAB 绘图讲解.docx_第14页
第14页 / 共16页
MATLAB 绘图讲解.docx_第15页
第15页 / 共16页
MATLAB 绘图讲解.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB 绘图讲解.docx

《MATLAB 绘图讲解.docx》由会员分享,可在线阅读,更多相关《MATLAB 绘图讲解.docx(16页珍藏版)》请在冰点文库上搜索。

MATLAB 绘图讲解.docx

MATLAB绘图讲解

在绘图命令中应该如何确定横坐标和纵坐标的标度尺寸(自己定范围)?

如何在一个坐标中绘制多条曲线,并用不同的颜色区别?

helpplot

helpaxis

axis('xlabel','ylabel')

a1=plot();

hlodon

a2=plot();

legend([a1a2],'图1名',‘图2名')

holdoff

还可以更多

x1=-pi:

pi/12:

pi;

x2=-pi:

pi/12:

pi;

y1=sin(x1);

y2=cos(x2);

plot(x1,y1,x2,y2);

axis([-2*pi2*pi-22]);

xlabel('x');

ylabel('y');

title('sin(x)&cos(x)');

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的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axisoff;axison则显示坐标轴(缺省值).

3)通常MATLAB的坐标系是长方形,长宽比例大约是4:

3,为了得到一个正方形的坐标系可用:

axissquare

4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:

axisequal

第二节二维图形的绘制

一.plot函数

plot函数是最基本的绘图函数,其基本的调用格式为:

1.plot(y)------绘制向量y对应于其元素序数的二维曲线图,如果y为复数向量,则绘制虚部对于实部的二维曲线图.

例:

绘制单矢量曲线图.

y=[00.62.358.311.71517.719.420];

plot(y)

由于y矢量有10个元素,x坐标自动定义为[12345678910].图形为:

12345678910

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矩阵中各行或列对应于向量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

plot(x,y)

在这个例子中,x------3x101,y------3x101,所以第一个plot按列画出101条曲线,每条3个点;而x'------101x3,y'------101x3,所以第二个plot按列画出3条曲线,每条101个点.

012345678

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

012345678

-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在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:

各种颜色属性选项

选项意义选项意义

'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')

holdon

plot(t,y2,':

g')

plot(t,y3,'*b')

holdoff

注:

在MATLAB中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了holdon后,可以保持坐标系中已绘出的图形.

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

绘出图形如下:

00.511.522.533.5

-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')

图形如下:

024681012

0

0.5

1

1.5

024681012

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,'属性选项')

该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.

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);

4)MATLAB还提供了一个实用的函数:

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)

0.5

1

1.5

30

210

60

240

90

270

120

300

150

330

1800

四.绘制多个子图:

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),……

221222

223224

注:

subplot函数没有画图功能,只是将窗口分割.

第三节图形的修饰与标注

MATLAB提供了一些特殊的函数修饰画出的图形,这些函数如下:

1)坐标轴的标题:

title函数

其调用格式为:

title('字符串')------字符串可以写中文

如:

title('Myownplot')

2)坐标轴的说明:

xlabel和ylabel函数

格式:

xlabel('字符串')

ylabel('字符串')

如:

xlabel('ThisismyXaxis')

ylabel('MyYaxis')

3)图形说明文字:

text和gtext函数

A.text函数:

按指定位置在坐标系中写出说明文字.

格式为:

text(x1,y1,'字符串','选项')

x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,则x1,y1的坐标单位和图中一致;如选项为'sc',则x1,y1表示规范化窗口的相对坐标,其范围为0到1.

(1,1)

规范化窗口

(0,0)

37

如:

text(1,2,'正弦曲线')

B.gtext函数:

按照鼠标点按位置写出说明文字.

格式为:

gtext('字符串')

当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext参数中的字符串就标注在该位置上.

4)给图形加网格:

grid函数

在调用时直接写grid即可.

上面的函数的应用实例:

例:

在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.

t=0:

pi/100:

2*pi;

y=sin(t);

plot(t,y),grid,

axis([02*pi-11])

xlabel('0leqittrmleqpi','FontSize',16)

ylabel('sin(t)','FontSize',20)

title('正弦函数图形','FontName','隶书','FontSize',20)

text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)

text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707','FontSize',16)

text(5*pi/4,sin(5*pi/4),'sin(t)=-0.707rightarrow',...

'FontSize',16,'HorizontalAlignment','right')

画出的图形为:

0246

-1

-0.5

0

0.5

1

0≤t≤π

sin(t)

正弦函数图形

←sin(t)=0

←sin(t)=0.707

sin(t)=-0.707→

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')

绘出图形如下:

02468

-1

-0.5

0

0.5

1

曲线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)等等.

根据各对象的相互关系,可以构成如下所示的树状层次:

Root

Figures

AxesUicontrolUimenuUicontextmenu(对象菜单)

ImagesLinePatchSurfaceText

对各种图形对象进行修改和控制,要使用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'])

-pi-pi/20pi/2pi

-1

-0.5

0

0.5

1

本例中用'xtick'属性设置x轴刻度的位置(从-pi~pi,间隔pi/2,共设置5个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5个刻度值.

二.一些常用的属性如下:

1)Box属性:

决定图形坐标轴是否为方框形式,选项为'on'(有方框),'off'(无方框);

2)'ColorOrder'属性:

设置多条曲线的颜色顺序,默认值为:

[110;101;011;100;010;001]

黄色粉色天蓝红色绿色兰色

颜色向量还有:

[111]------白色;[000]------黑色.

3)坐标轴方向属性:

'Xdir','Ydir','Zdir',其选项为:

'normal'------正常

'reverse'------反向

4)坐标轴颜色和线型属性:

'Xcolor','Ycolor','Zcolor'------轴颜色,值为颜色向量

如何在画好曲线后 再在图上标刻度啊?

就是想在一些特定的点边上标上一串30.60.90~7200 递增的数据]

共有96个点要标!

难道只能用text一个一个的画吗?

求求大家了 帮帮忙忙吧

循环语句加上text,不行吗?

url='

im=imread(url);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2