第六章MATLAB图形处理功能.docx
- 文档编号:29431195
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:51
- 大小:201.14KB
第六章MATLAB图形处理功能.docx
《第六章MATLAB图形处理功能.docx》由会员分享,可在线阅读,更多相关《第六章MATLAB图形处理功能.docx(51页珍藏版)》请在冰豆网上搜索。
第六章MATLAB图形处理功能
第六章图形处理功能
Chapter6:
ThefunctionofImageprocessing
MATLAB作图
1、作图前图形的初始设置
作图前,对figure的大小,比例,以及坐标轴刻度,字体,等设置,这样不用在投稿后修改。
程序:
%%%%%%%%%%%%%%%%%%%%%
%plotyourfigurebefore
%%%%%%%%%%%%%%%%%%%%%
%figureresize
set(gcf,'Position',[100100260220]);
set(gca,'Position',[.13.17.80.74]);
figure_FontSize=8;
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
set(findobj('FontSize',10),'FontSize',figure_FontSize);
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
解释:
gcf返回当前Figure对象的句柄值。
gca返回当前axes对象的句柄值。
gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。
set(gcf,'Position',[100100260220]);
这句是设置绘图的大小,不需要到word里再调整大小。
我给的参数,图的大小是7cm
set(gca,'Position',[.13.17.80.74]);
这句是设置xy轴在图片中占的比例,可能需要自己微调。
figure_FontSize=8;
set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');
set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');
set(findobj('FontSize',10),'FontSize',figure_FontSize);
这4句是将字体大小改为8号字,在小图里很清晰
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
这句是将线宽改为2
MATLAB提供了大量用于将矢量数据以曲线图形方式进行显示的函数,包括用于实现图表绘制、科学曲线绘制和各种专业数据可视化显示的二维图形绘制函数;用于表示向量场的数据及二元函数图形表达的三维图形绘制函数;提供了用于图形效果高级处理的相关函数以及图形句柄操作函数;柱状图、饼图和直方图等特殊图形绘制函数;动画制作等丰富的3D可视化功能。
一.二维图形(Twodimensionalplotting)
1.基本绘图函数(Basicplottingfunction):
Plot,semilogx,semilogy,loglog,polar,plotyy
(1).单矢量绘图(singlevectorplotting):
plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。
例1:
单矢量绘图
y=[00.62.358.311.71517.719.420];
plot(y)
可以在图形中加标注和网格,
例2:
给例1的图形加网格和标注。
y=[00.62.358.311.71517.719.420];
plot(y)
title('简单绘图举例');
xlabel('单元下标');
ylabel('给定的矢量');
grid
(2).双矢量绘图(Doublevectorplotting):
如x和y是同样长度的矢量,plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。
例:
双矢量绘图。
x=0:
0.05:
4*pi;
y=sin(x);
plot(x,y)
(3).对数坐标绘图(plotinginlogarithmcoordinate):
x轴对数semilogx,y轴对数semilogy,双对数loglog,
例:
绘制数组y的线性坐标图和三种对数坐标图。
y=[00.62.358.311.71517.719.420];
subplot(2,2,1)
plot(y)
subplot(2,2,2)
semilogx(y)
subplot(2,2,3)
semilogy(y)
subplot(2,2,4)
loglog(y)
(4)极坐标绘图(Plottinginpolarcoordinate):
polar(theta,rho)theta—角度,rho—半径
例:
建立简单的极坐标图形。
t=0:
.01:
2*pi;
polar(t,sin(2*t).*cos(2*t))
2.多重曲线绘图(Multiplecurveplotting)
(1)一组变量绘图(Agroupvariableplotting)
plot(x,y)
(a)x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。
例1:
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)
(b)x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。
。
例2:
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=sin(x(1,:
));
plot(x,y)
(c)x和y是同样大小的矩阵时,plot(x,y)绘制y矩阵中各列对应于x各列的图形。
例3:
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(:
1));
y(:
3)=0.3*sin(x(:
1));
plot(x,y)
这里x和y的尺寸都是101×3,所以画出每条都是101点组成的三条曲线。
如行列转置后就会画出101条曲线,每条线由三点组成。
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(1,:
))
y(3,:
)=0.3*sin(x(1,:
))
plot(x,y)
(d)如果y是矩阵,则plot(y)绘出y中各列相对于行号的图形,对于n行矩阵,x轴的坐标为[1:
n]。
x=pi;
y=[sin(x)cos(x)+9x^2;x^3+8sin(x)*23+15*x;x^4-x^2x^3-26*x+cos(x)]
plot(y)
(2)多组变量绘图(Multiplegroupvariablesplotting):
对于一系列相应的矩阵yi和xi,可以使用多组变量绘图法:
plot(x1,y1,x2,y2,…,xn,yn),
这种方法的优点是允许将不同大小的矩阵或矢量的图形绘制在一张图上。
例:
多组变量绘图。
x1=0:
pi/50:
2*pi;
y1=sin(x1);
x2=0:
pi/50:
3*pi;
y2=0.6*cos(x2);
x3=0:
pi/50:
4*pi;
y3=0.3*sin(x3);
plot(x1,y1,x2,y2,x3,y3)
(3)双y轴绘图:
plotyy,
在一个图形窗口绘制两组数据曲线,共用一个x轴,图形两边各有一个y轴,两条图线可以调用不同的绘图方法。
例1:
plotyy实现双y坐标绘图
t=0:
900;
A=1000;
a=0.005;
b=0.005;
z1=A*exp(-a*t);
z2=sin(b*t);
plotyy(t,z1,t,z2,'semilogy','plot')
例2:
调用plotyy实现不同的绘图方法
x=0:
0.3:
12;
y1=exp(-0.2*x).*sin(x)+0.5;
y2=exp(-0.4*x).*cos(x)+1;
plotyy(x,y1,x,y2,'plot','stem')
左侧y轴对应plot形式的绘图,右侧y轴对应stem形式的曲线。
3.图线形式和颜色(LineSpecification)
Linespecificationstringsyntax
plot(X1,Y1,LineSpec,...,Xn,Yn,LineSpec)
1)图线的形式:
(LineStyleSpecifiers)
MATLAB提供了四种线形:
实线—(Solidline(default)),虚线--(Dashedline),冒号线:
(Dottedline),
,点划线—·(Dash-dotline)
2)标记点类型:
(MarkerSpecifiers)MATLAB绘图函数中可选的标记点形式有13种,可在plot函数中确定
.Point,+Plussign,*Asterisk,oCircle,×Cross,s'square'ors,d'diamond'ord,△Upward-pointingtriangle,▽Downward-pointingtriangle,
例1:
选择不同的线形绘图。
t=0:
pi/100:
2*pi;
y=sin(t);
y2=sin(t-0.25);
y3=sin(t-0.5);
plot(t,y,'-',t,y2,'-',t,y3,':
')
例2:
选择不同的标记点绘图。
t=0:
pi/20:
2*pi;
x=t.^3;
y=sin(t);
plot(x,y,'o')%确定标记点形式
3)标记点及曲线的颜色设置(ColorSpecifiersofline):
MATLAB绘图函数中可选的颜色有8种,可在plot函数中确定:
红r(red),绿g(green),蓝b(blue),黄y(yellow),紫红m(Magenta),青c(cyan)黑k(Black),白w(white).
例:
x=0:
pi/20:
2*pi;
y=sin(x);
plot(x,y,'r'),
hold
plot(x,y,'g+')%确定曲线及标记点颜色
4)图线的其他属性(othercharactersofplot):
在绘图函数plot中还可设置图线的宽度(LineWidth)、标记点的边缘颜色(MarkerEdgeColor)、填充颜色(MarkerFaceColor)、标记点的大小(MarkerSize)等。
图形属性由属性名字符串及属性值字符串或数字确定,两者必成对设置。
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
h=plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
例:
设置图线的线形、颜色、宽度、标记点的颜色及大小。
t=0:
pi/20:
pi;
y=sin(4*t).*sin(t)/2;
plot(t,y,'-bs','LineWidth',2,'MarkerEdgeColor','k',...
'MarkerFaceColor','y','MarkerSize',10)
4.复数绘图(Complexplotting):
plot用于函数绘制复数的图形时,通常虚部是被忽略的。
但plot只作用于单个复变量z时,则绘出的是实部对虚部的关系图(复平面上的一组点)。
即这时plot(z)等价于plot(real(z)).
例:
画一个20边的多边形(用exp函数生成),顶角用小圆圈表示。
t=0:
pi/10:
2*pi;
plot(exp(i*t),'o')
axis('square')
如果在复平面绘制多重线,只能分别以实部和虚部为坐标来绘制,否则虚部将被忽略,并给出警告。
二.图形的控制与表现(Figurecontrolandrepresentation)
MATLAB提供的用于图形控制的函数和命令:
axis:
人工选择坐标轴尺寸.
clf:
清图形窗口.
ginput:
利用鼠标的十字准线输入.
hold:
保持图形.
shg:
显示图形窗口.
subplot:
将图形窗口分成N块子窗口。
1.图形窗口(figurewindow)
1).图形窗口的创建和选择(Creatingandselectingoffigurewindow)
figure(n)函数用于为当前的绘图创建图形窗口,每运行一次figure就会创建一个新的图形窗口,n表示第个n窗口,如果窗口定义了句柄,也可以用figure(h)将句柄h的窗口作为当前窗口。
clf命令用于清除当前图形窗口中的内容。
shg命令用于显示当前图形窗口。
2).在一个图形窗口中绘制多个子图形(Drawingseveralsubfiguresinasinglewindow)
subplot(m,n,p),把窗口分成m×n个小窗口,并把第p个窗口当作当前窗口。
subplot(‘position’,[leftbottomwidthheight]),把窗口分成若干个大小可设定的小窗口,在指定位置的矩形区域中建立axes,leftbottomwidthheight是规一化的坐标指定区域的位置和大小,坐标原点在左下角,右上角坐标为(1,1)。
例1:
将4个图形显示在同一个图形窗口中。
t=0:
pi/20:
2*pi;
[x,y]=meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t)),
axisequal
subplot(2,2,2)
z=sin(x)+cos(y);
plot(t,z),
axis([02*pi–22])
subplot(2,2,3)
z=sin(x).*cos(y);
plot(t,z),
axis([02*pi–11])
subplot(2,2,4)
z=sin(x).^2-cos(y).^2;
plot(t,z),
axis([02*pi–11])
例2:
将多个图形分配不同的位置和大小,并显示在同一个图形窗中。
a=[1:
200]*pi/100;
subplot('position',[0.050.550.90.4]);%建立第一个区域
surf(peaks(26));
subplot('position',[0.050.050.40.4]);%建立第二个区域
plot(sin(a));
subplot('position',[0.550.050.40.4]);%建立第三个区域
plot(3-a.*a);
例3;利用图形句柄将多个图形分配不同的位置和大小,并显示在同一个图形窗中。
a1=axes;%建立第一个区域
set(a1,'position',[0.050.550.90.4]);%定位于窗口的上方
a2=axes;%建立第二个区域
set(a2,'position',[0.050.050.40.4]);%定位于窗口的左下方
a3=axes;%建立第三个区域
set(a3,'position',[0.550.050.40.4]);%定位于窗口的右下方
a=[1:
200]*pi/100;%创建矢量
s=sin(a);
c=cos(a);
t=1+a.*a;
axes(a1);%在设定的区域绘图
plot(a/pi,s);
axes(a2);
plot(a/pi,c);
axes(a3);
plot(a/pi,t);
3).在一个已有的图形上绘图(Drawingafigureonthefigurewasexisted):
在一个绘图窗口中,用holdon命令在一个已有的图形上继续绘图,使用holdoff命令结束继续绘图。
例:
将peaks函数的等高线图与伪彩色画在一起。
[x,y,z]=peaks;%产生双变量数组
contour(x,y,z,20,'k')%绘制等高线
holdon
pcolor(x,y,z)%绘制伪彩色图
shadinginterp%表面色彩渲染
holdoff
2.坐标轴控制命令(Axiscontrolcommands)
控制坐标性质的axis函数的多种调用格式:
axis(xminxmaxyminymax):
指定二维图形x和y轴的刻度范围,
axisauto设置坐标轴为自动刻度(缺省值)
axismanual(或axis(axis))保持刻度不随数据的大小而变化
axistight以数据的大小为坐标轴的范围
axisij设置坐标轴的原点在左上角,i为纵坐标,j为横坐标
axisxy使坐标轴回到直角坐标系
axisequal使坐标轴刻度增量相同
axissquare使各坐标轴长度相同,但刻度增量未必相同
axisnormal自动调节轴与数据的外表比例,使其他设置失效
axisoff使坐标轴消隐
axison显现坐标轴
1)坐标轴的范围(Domainofcoordinatesaxis):
二维图形坐标轴范围在缺省状态下是根据数据的大小自动设置的,如欲改变,可利用axis(xminxmaxyminymax),函数来定义x和y轴的范围。
例:
定义坐标轴范围对观察图形的影响。
x=0:
.01:
pi/2;
figure
(1)
plot(x,tan(x),'-ro')%ymax=tan(1.57),而其他数据都很小,结果将
%使图形难于进行观察和判断。
figure
(2)
plot(x,tan(x),'-ro')
axis([0,pi/2,0,5])%对坐标轴的范围进行控制就可得到较满意的绘图结果
2)显示比例对绘图结果的影响(Effectofdisplayscalingonplottingresults)
例:
比较(Default,axissquare,axisequal,axistight)几种不同坐标轴控制命令显示方式的显示效果。
t=0:
pi/20:
2*pi;
figure
(1)
subplot(2,1,1)
plot(sin(t),2*cos(t))%缺省状态下的图形比例
gridon
subplot(2,1,2)
plot(sin(t),2*cos(t))
axissquare%正方形的显示比例
gridon
figure
(2)
subplot(1,2,1)
plot(sin(t),2*cos(t))
axisequal%具有相等的刻度比例
gridon
subplot(1,2,2)
plot(sin(t),2*cos(t))
axistight%紧缩形式
gridon
3.图形标注(Markingonthefigure):
MATLAB的图形标注方法
title标题,
xlabelx轴标注,
ylabely轴标注,
text任意定位的标注
gtext鼠标定位标注,
legent标注图例
图形标注可以使用字母,数字,汉字或按规定的方法表示希腊字母,如\pi表示π,\leq表示≤,\rm表示后面的字恢复为正体字,\it表示斜体字,FontSize表示字体的大小,FontName表示字体的类型等。
可以使用图形窗口的Insert菜单,也可以使用属性编辑器,还可以使用函数输入的方法加标注,以下介绍相关函数的使用方法。
1).加注坐标轴标识和图形标题(Addaxislabelsandtitleoffigure)
加注坐标轴标识:
xlabel(‘s’),ylabel(‘s’)
图形标题:
title(‘s’)
例:
加注坐标轴标示和图形标题。
t=0:
pi/100:
2*pi;
y=sin(t);
plot(t,y)
axis([02*pi,-11])
xlabel('0\leq\itt\rm\leq\pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书','FontSize',20)
2).图中加注文本(Addtextinthefigure)用text函数可以在图形窗口的指定位置上添加文本字符串,调用格式为:
text(x,y,’字符串’)其中x,y为加入文本字符串的位置。
例:
在上图中加语句。
t=0:
pi/100:
2*pi;
y=sin(t);
plot(t,y)
axis([02*pi,-11])
xlabel('0\leq\itt\rm\leq\pi','FontSize',16)
ylabel('sin(t)','FontSize',20)
title('正弦函数图形','FontName','隶书','FontSize',20)
text(3*pi/4,sin(3*pi/4),'\leftarrowsin(t)=0.707','FontSize',16)
text(pi,sin(pi),'\leftarrowsin(t)=0','FontSize',16)
text(5*pi/4,sin(5*pi/4),'sin(t)=-0.707\rightarrow','FontSize',16,...
'HorizontalAlignment','right')
句中:
leftarrow表示加一个向左的箭头
rightarrow表示加一个向右的箭头
Ho
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 MATLAB 图形 处理 功能