matlab实用程序百例图形应用篇.docx
《matlab实用程序百例图形应用篇.docx》由会员分享,可在线阅读,更多相关《matlab实用程序百例图形应用篇.docx(28页珍藏版)》请在冰豆网上搜索。
![matlab实用程序百例图形应用篇.docx](https://file1.bdocx.com/fileroot1/2023-1/31/7b91ea80-151e-4f27-9224-f7e1133015db/7b91ea80-151e-4f27-9224-f7e1133015db1.gif)
matlab实用程序百例图形应用篇
1-32是:
图形应用篇
33-66是:
界面设计篇
67-84是:
图形处理篇
85-100是:
数值分析篇
实例1:
三角函数曲线
(1)
functionshili01
h0=figure('toolbar','none',...
'position',[19856350300],...
'name','实例01');
h1=axes('parent',h0,...
'visible','off');
x=-pi:
0.05:
pi;
y=sin(x);
plot(x,y);
xlabel('自变量X');
ylabel('函数值Y');
title('SIN()函数曲线');
gridon
实例2:
三角函数曲线
(2)
functionshili02
h0=figure('toolbar','none',...
'position',[200150450350],...
'name','实例02');
x=-pi:
0.05:
pi;
y=sin(x)+cos(x);
plot(x,y,'-*r','linewidth',1);
gridon
xlabel('自变量X');
ylabel('函数值Y');
title('三角函数');
实例3:
图形的叠加
functionshili03
h0=figure('toolbar','none',...
'position',[200150450350],...
'name','实例03');
x=-pi:
0.05:
pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,...
'-*r',...
x,y2,...
'--og');
gridon
xlabel('自变量X');
ylabel('函数值Y');
title('三角函数');
实例4:
双y轴图形的绘制
functionshili04
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例04');
x=0:
900;a=1000;b=0.005;
y1=2*x;
y2=cos(b*x);
[haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot');
axes(haxes
(1))
ylabel('semilogplot');
axes(haxes
(2))
ylabel('linearplot');
实例5:
单个轴窗口显示多个图形
functionshili05
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例05');
t=0:
pi/10:
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)
h=sin(x)+cos(y);
plot(t,h)
axis([02*pi-22])
subplot(2,2,4)
g=(sin(x).^2)-(cos(y).^2);
plot(t,g)
axis([02*pi-11])
实例6:
图形标注
functionshili06
h0=figure('toolbar','none',...
'position',[200150450400],...
'name','实例06');
t=0:
pi/10:
2*pi;
h=plot(t,sin(t));
xlabel('t=0到2\pi','fontsize',16);
ylabel('sin(t)','fontsize',16);
title('\it{从0to2\pi的正弦曲线}','fontsize',16)
x=get(h,'xdata');
y=get(h,'ydata');
imin=find(min(y)==y);
imax=find(max(y)==y);
text(x(imin),y(imin),...
['\leftarrow最小值=',num2str(y(imin))],...
'fontsize',16)
text(x(imax),y(imax),...
['\leftarrow最大值=',num2str(y(imax))],...
'fontsize',16)
实例7:
条形图形
functionshili07
h0=figure('toolbar','none',...
'position',[200150450350],...
'name','实例07');
tiao1=[56254822454541445745512];
tiao2=[4748575854526548];
t=0:
7;
bar(t,tiao1)
xlabel('X轴');
ylabel('TIAO1值');
h1=gca;
h2=axes('position',get(h1,'position'));
plot(t,tiao2,'linewidth',3)
set(h2,'yaxislocation','right','color','none','xticklabel',[])
实例8:
区域图形
functionshili08
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例08');
x=91:
95;
profits1=[8875849377];
profits2=[5164545668];
profits3=[4254342524];
profits4=[263818154];
area(x,profits1,'facecolor',[0.50.90.6],...
'edgecolor','b',...
'linewidth',3)
holdon
area(x,profits2,'facecolor',[0.90.850.7],...
'edgecolor','y',...
'linewidth',3)
holdon
area(x,profits3,'facecolor',[0.30.60.7],...
'edgecolor','r',...
'linewidth',3)
holdon
area(x,profits4,'facecolor',[0.60.50.9],...
'edgecolor','m',...
'linewidth',3)
holdoff
set(gca,'xtick',[91:
95])
set(gca,'layer','top')
gtext('\leftarrow第一季度销量')
gtext('\leftarrow第二季度销量')
gtext('\leftarrow第三季度销量')
gtext('\leftarrow第四季度销量')
xlabel('年','fontsize',16);
ylabel('销售量','fontsize',16);
实例9:
饼图的绘制
functionshili09
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例09');
t=[542135;
685435;
452512;
486845;
685469];
x=sum(t);
h=pie(x);
textobjs=findobj(h,'type','text');
str1=get(textobjs,{'string'});
val1=get(textobjs,{'extent'});
oldext=cat(1,val1{:
});
names={'商品一:
';'商品二:
';'商品三:
'};
str2=strcat(names,str1);
set(textobjs,{'string'},str2)
val2=get(textobjs,{'extent'});
newext=cat(1,val2{:
});
offset=sign(oldext(:
1)).*(newext(:
3)-oldext(:
3))/2;
pos=get(textobjs,{'position'});
textpos=cat(1,pos{:
});
textpos(:
1)=textpos(:
1)+offset;
set(textobjs,{'position'},num2cell(textpos,[3,2]))
实例10:
阶梯图
functionshili10
h0=figure('toolbar','none',...
'position',[200150450400],...
'name','实例10');
a=0.01;
b=0.5;
t=0:
10;
f=exp(-a*t).*sin(b*t);
stairs(t,f)
holdon
plot(t,f,':
*')
holdoff
glabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图';
gtext(glabel,'fontsize',16)
xlabel('t=0:
10','fontsize',16)
axis([010-1.21.2])
实例11:
枝干图
functionshili11
h0=figure('toolbar','none',...
'position',[200150450350],...
'name','实例11');
x=0:
pi/20:
2*pi;
y1=sin(x);
y2=cos(x);
h1=stem(x,y1+y2);
holdon
h2=plot(x,y1,'^r',x,y2,'*g');
holdoff
h3=[h1
(1);h2];
legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)')
xlabel('自变量X');
ylabel('函数值Y');
title('正弦函数与余弦函数的线性组合');
实例12:
罗盘图
functionshili12
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例12');
winddirection=[54246584
2561223562
12532434254];
windpower=[2553
68127
614108];
rdirection=winddirection*pi/180;
[x,y]=pol2cart(rdirection,windpower);
compass(x,y);
desc={'风向和风力',
'北京气象台',
'10月1日0:
00到',
'10月1日12:
00'};
gtext(desc)
实例13:
轮廓图
functionshili13
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例13');
[th,r]=meshgrid((0:
10:
360)*pi/180,0:
0.05:
1);
[x,y]=pol2cart(th,r);
z=x+i*y;
f=(z.^4-1).^(0.25);
contour(x,y,abs(f),20)
axisequal
xlabel('实部','fontsize',16);
ylabel('虚部','fontsize',16);
h=polar([02*pi],[01]);
delete(h)
holdon
contour(x,y,abs(f),20)
实例14:
交互式图形
functionshili14
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例14');
axis([010010]);
holdon
x=[];
y=[];
n=0;
disp('单击鼠标左键点取需要的点');
disp('单击鼠标右键点取最后一个点');
but=1;
whilebut==1
[xi,yi,but]=ginput
(1);
plot(xi,yi,'bo')
n=n+1;
disp('单击鼠标左键点取下一个点');
x(n,1)=xi;
y(n,1)=yi;
end
t=1:
n;
ts=1:
0.1:
n;
xs=spline(t,x,ts);
ys=spline(t,y,ts);
plot(xs,ys,'r-');
holdoff
实例14:
交互式图形
functionshili14
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例14');
axis([010010]);
holdon
x=[];
y=[];
n=0;
disp('单击鼠标左键点取需要的点');
disp('单击鼠标右键点取最后一个点');
but=1;
whilebut==1
[xi,yi,but]=ginput
(1);
plot(xi,yi,'bo')
n=n+1;
disp('单击鼠标左键点取下一个点');
x(n,1)=xi;
y(n,1)=yi;
end
t=1:
n;
ts=1:
0.1:
n;
xs=spline(t,x,ts);
ys=spline(t,y,ts);
plot(xs,ys,'r-');
holdoff
实例15:
变换的傅立叶函数曲线
functionshili15
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例15');
axisequal
m=moviein(20,gcf);
set(gca,'nextplot','replacechildren')
h=uicontrol('style','slider','position',...
[1001050020],'min',1,'max',20)
forj=1:
20
plot(fft(eye(j+16)))
set(h,'value',j)
m(:
j)=getframe(gcf);
end
clf;
axes('position',[0011]);
movie(m,30)
实例16:
劳伦兹非线形方程的无序活动
functionshili15
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例15');
axisequal
m=moviein(20,gcf);
set(gca,'nextplot','replacechildren')
h=uicontrol('style','slider','position',...
[1001050020],'min',1,'max',20)
forj=1:
20
plot(fft(eye(j+16)))
set(h,'value',j)
m(:
j)=getframe(gcf);
end
clf;
axes('position',[0011]);
movie(m,30)
实例17:
填充图
functionshili17
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例17');
t=(1:
2:
15)*pi/8;
x=sin(t);
y=cos(t);
fill(x,y,'r')
axissquareoff
text(0,0,'STOP',...
'color',[111],...
'fontsize',50,...
'horizontalalignment','center')
例18:
条形图和阶梯形图
functionshili18
h0=figure('toolbar','none',...
'position',[200150450250],...
'name','实例18');
subplot(2,2,1)
x=-3:
0.2:
3;
y=exp(-x.*x);
bar(x,y)
title('2-DBarChart')
subplot(2,2,2)
x=-3:
0.2:
3;
y=exp(-x.*x);
bar3(x,y,'r')
title('3-DBarChart')
subplot(2,2,3)
x=-3:
0.2:
3;
y=exp(-x.*x);
stairs(x,y)
title('StairChart')
subplot(2,2,4)
x=-3:
0.2:
3;
y=exp(-x.*x);
barh(x,y)
title('HorizontalBarChart')
实例19:
三维曲线图
functionshili19
h0=figure('toolbar','none',...
'position',[200150450400],...
'name','实例19');
subplot(2,1,1)
x=linspace(0,2*pi);
y1=sin(x);
y2=cos(x);
y3=sin(x)+cos(x);
z1=zeros(size(x));
z2=0.5*z1;
z3=z1;
plot3(x,y1,z1,x,y2,z2,x,y3,z3)
gridon
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure1:
3-DPlot')
subplot(2,1,2)
x=linspace(0,2*pi);
y1=sin(x);
y2=cos(x);
y3=sin(x)+cos(x);
z1=zeros(size(x));
z2=0.5*z1;
z3=z1;
plot3(x,z1,y1,x,z2,y2,x,z3,y3)
gridon
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure2:
3-DPlot')
实例20:
图形的隐藏属性
functionshili20
h0=figure('toolbar','none',...
'position',[200150450300],...
'name','实例20');
subplot(1,2,1)
[x,y,z]=sphere(10);
mesh(x,y,z)
axisoff
title('Figure1:
Opaque')
hiddenon
subplot(1,2,2)
[x,y,z]=sphere(10);
mesh(x,y,z)
axisoff
title('Figure2:
Transparent')
hiddenoff
实例21PEAKS函数曲线
functionshili21
h0=figure('toolbar','none',...
'position',[200100450450],...
'name','实例21');
[x,y,z]=peaks(30);
subplot(2,1,1)
x=x(1,:
);
y=y(:
1);
i=find(y>0.8&y<1.2);
j=find(x>-0.6&x<0.5);
z(i,j)=nan*z(i,j);
surfc(x,y,z)
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure1:
surfc函数形成的曲面')
subplot(2,1,2)
x=x(1,:
);
y=y(:
1);
i=find(y>0.8&y<1.2);
j=find(x>-0.6&x<0.5);
z(i,j)=nan*z(i,j);
surfl(x,y,z)
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure2:
surfl函数形成的曲面')
实例22:
片状图
functionshili22
h0=figure('toolbar','none',...
'position',[200150550350],...
'name','实例22');
subplot(1,2,1)
x=rand(1,20);
y=rand(1,20);
z=peaks(x,y*pi);
t=delaunay(x,y);
trimesh(t,x,y,z)
hiddenoff
title('Figure1:
TriangularSurfacePlot');
subplot(1,2,2)
x=rand(1,20);
y=rand(1,20);
z=peaks(x,y*pi);
t=delaunay(x,y);
trisurf(t,x,y,z)
title('Figure1:
TriangularSurfacePlot');
实例23:
视角的调整
functionshili23
h0=figure('toolbar','none',...
'position',[200150450350],...
'name','实例23');
x=-5:
0.5:
5;
[x,y]=meshgrid(x);
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
subplot(2,2,1)
surf(x,y,z)
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Figure1')
view(-37.5,30)
subplot(2,2,2)
surf(x,y,z)
xlabel('X-axis')
ylabe