专题如何用Matlab画图.docx
《专题如何用Matlab画图.docx》由会员分享,可在线阅读,更多相关《专题如何用Matlab画图.docx(12页珍藏版)》请在冰点文库上搜索。
![专题如何用Matlab画图.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/9a67ec54-1796-4169-b54f-a464f8a826f4/9a67ec54-1796-4169-b54f-a464f8a826f41.gif)
专题如何用Matlab画图
helpplot
helpaxis
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各类图形对象的方式.第一节图形窗口与坐标系
在图形窗口中绘制或输出图形,因此图形窗口就像一张画图纸.2.在MATLAB下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB通过治理图形窗口的句柄来治理图形窗口;
3.当前窗口句柄能够由MATLAB函数gcf取得;
4.在任何时刻,只有唯一的一个窗口是当前的图形窗口(活跃窗口);figure(h)----将句柄为h的窗口设置为当前窗口;
5.打开图形窗口的方式有三种:
1)挪用画图函数时自动打开;
2)用File---New---Figure新建;
3)figure命令打开,close命令关闭.
在运行画图程序前假设已打开图形窗口,那么画图函数再也不打开,而直接利用已打开的图形窗口;假设运行程序前已存在多个图形窗口,而且没有指定哪个窗口为当前窗口时,那么以最后利用过的窗口为当前窗口输出图形.
6.窗口中的图形打印:
用图形窗口的File菜单中的Print项.
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函数是最大体的画图函数,其大体的挪用格式为:
(y)------绘制向量y对应于其元素序数的二维曲线图,若是y为复数向量,那么绘制虚部关于实部的二维曲线图.
例:
绘制单矢量曲线图.
y=[051520];
plot(y)
由于y矢量有10个元素,x坐标自动概念为[12345678910].
(x,y)------绘制由x,y所确信的曲线.
1)x,y是两组向量,且它们的长度相等,那么plot(x,y)能够直观地绘出以x为横坐标,y为纵坐标的图形.
如:
画正弦曲线:
t=0:
:
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,:
)=*sin(x);
y(2,:
)=*sin(x);
plot(x,y)
或还能够如此用:
x=0:
pi/50:
2*pi;
y=[sin(x);*sin(x);*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,:
)=*sin(x(2,:
));
y(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个点.
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+'表示用绿色的'+'号绘制曲线.
注意:
1)表示属性的符号必需放在同一个字符串中;
2)可同时指定2~3个属性;
3)与前后顺序无关;
4)指定的属性中,同一种属性不能有两个以上.
例:
t=0:
:
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:
:
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后,能够维持坐标系中已绘出的图形.
还能够进一步设置包括线的宽度(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
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:
:
12;
y=exp*x).*sin(x)+;
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,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.
3)loglog()------绘制X,Y轴均为对数坐标轴的图形.
其挪用格式为:
loglog(x,y,'属性选项')该函数别离对横,纵坐标都进行对数变换.
例:
x=0:
:
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:
:
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('Myownplot')
2)坐标轴的说明:
xlabel和ylabel函数
格式:
xlabel('字符串')ylabel('字符串')
如:
xlabel('ThisismyXaxis')ylabel('MyYaxis')
3)图形说明文字:
text和gtext函数
函数:
按指定位置在座标系中写出说明文字.
格式为:
text(x1,y1,'字符串','选项')x1,y1为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1的坐标单位,如没有选项,那么x1,y1的坐标单位和图中一致;如选项为'sc',那么x1,y1表示标准化窗口的相对坐标,其范围为0到1.
如:
text(1,2,'正弦曲线')
函数:
依照鼠标点按位置写出说明文字.
格式为:
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)=','FontSize',16)text(5*pi/4,sin(5*pi/4),'sin(t)=',...
'FontSize',16,'HorizontalAlignment','right')
5)在图形中添加图例框:
legend函数
其挪用格式为:
('字符串1','字符串2',……)------以字符串1,字符串2……作为图形标注的图例.
('字符串1','字符串2',……,pos)------pos指定图例框显示的位置.
图例框被预定了6个显示位置:
0------取最正确位置;
1------右上角(缺省值);
2------左上角;
3------左下角;
4------右下角;
-1------图的右边.
例:
在图形中添加图例.
x=0:
pi/10:
2*pi;
y1=sin(x);
y2=*sin(x);
y3=*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)等等.依照各对象的彼此关系,能够组成如下所示的树状层次:
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'])
本例顶用'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个点要标!
!
im=imread(url);
imshow(im)
然后输入:
text(100,100,'\o','Color','red');
matlab,用imread读入一个图片,我想在图上的一些坐标点上做标记。
比如把图上坐标值为(100,100)的点用红圈注出来。
具体用什么命令语句实现呢用subplot在一个图象窗口中作以下四条曲线,并为每幅图形加上题目:
1)概率曲线y=e^(-x^2)
2)四叶玫瑰线ρ=sin2θ
3)叶形线x=3t/(1+t^3)
y=3t^2/(1+t^3)
4)摆线x=a(t-sint),y=a(1-cost),t∈[0,2π]。
5)坐标轴的标尺属性:
'Xtick','Ytick','Ztick'------标度的位置,值为向量'Xticklabel','Yticklabel','Zticklabel'------轴上标度的符号,它的值为与标度位置向量一样大小(向量个数相同)的向量.
5)字体设置属性:
'FontAngle'------设置字体角度,选项为:
'normal'------正常;
'italic'------斜体;
'oblique'------倾斜;
'FontName'------字体名称;
'FontSize'------字号大小
'FontWeight'------字体的轻重,选项为:
'light',
'normal','bold'
x=1:
8;
subplot(2,2,1)
plot(x)
%tickstyle0(auto)
subplot(2,2,2)
plot(x)
set(gca,'xtick',[1368]);%style1
set(gca,'ytick',[]);%style2
subplot(2,2,3)
plot(x)
set(gca,'xtick',[1368]);
set(gca,'xticklabel',sprintf('%|',get(gca,'xtick')));%style3set(gca,'ytick',[2457]);
set(gca,'yticklabel',{'Two','Four','Five','Seven'});%style4subplot(2,2,4)
plot(x)
set(gca,'xminortick','on');%style5
set(gca,'ticklength',[]);%style6
set(gca,'tickdir','out');%style7
另附Maltab坐标调整程序一段:
x=20:
10:
20000;
y=rand(size(x));
semilogx(x,y);
set(gca,'XLim',[2020000]);
set(gca,'XMinorTick','off');
set(gca,'XTick',[2063125250500100020004000800016000]);set(gca,'XGrid','on');
set(gca,'XMinorGrid','off');