1-32 是:图形应用篇
33-66 是:界面设计篇
67-84 是:图形处理篇
85-100 是:数值分析篇
实例 1:三角函数曲线(1)
function shili01
h0=figure('toolbar','none',...
'position',[198 56 350 300],...
'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( )函数曲线');
grid on
实例 2:三角函数曲线(2)
function shili02
h0=figure('toolbar','none',...
'position',[200 150 450 350],...
'name','实例 02');
x=-pi:0.05:pi;
y=sin(x)+cos(x);
plot(x,y,'-*r','linewidth',1);
grid on
xlabel('自变量 X');
ylabel('函数值 Y');
title('三角函数');
实例 3:图形的叠加
function shili03
h0=figure('toolbar','none',...
'position',[200 150 450 350],...
'name','实例 03');
x=-pi:0.05:pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,...
'-*r',...
x,y2,...
'--og');
grid on
xlabel('自变量 X');
ylabel('函数值 Y');
title('三角函数');
实例 4:双 y 轴图形的绘制
function shili04
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'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('semilog plot');
axes(haxes(2))
ylabel('linear plot');
实例 5:单个轴窗口显示多个图形
function shili05
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 05');
t=0:pi/10:2*pi;
[x,y]=meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t))
axis equal
subplot(2,2,2)
z=sin(x)-cos(y);
plot(t,z)
axis([0 2*pi -2 2])
subplot(2,2,3)
h=sin(x)+cos(y);
plot(t,h)
axis([0 2*pi -2 2])
subplot(2,2,4)
g=(sin(x).^2)-(cos(y).^2);
plot(t,g)
axis([0 2*pi -1 1])
实例 6:图形标注
function shili06
h0=figure('toolbar','none',...
'position',[200 150 450 400],...
'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:条形图形
function shili07
h0=figure('toolbar','none',...
'position',[200 150 450 350],...
'name','实例 07');
tiao1=[562 548 224 545 41 445 745 512];
tiao2=[47 48 57 58 54 52 65 48];
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:区域图形
function shili08
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 08');
x=91:95;
profits1=[88 75 84 93 77];
profits2=[51 64 54 56 68];
profits3=[42 54 34 25 24];
profits4=[26 38 18 15 4];
area(x,profits1,'facecolor',[0.5 0.9 0.6],...
'edgecolor','b',...
'linewidth',3)
hold on
area(x,profits2,'facecolor',[0.9 0.85 0.7],...
'edgecolor','y',...
'linewidth',3)
hold on
area(x,profits3,'facecolor',[0.3 0.6 0.7],...
'edgecolor','r',...
'linewidth',3)
hold on
area(x,profits4,'facecolor',[0.6 0.5 0.9],...
'edgecolor','m',...
'linewidth',3)
hold off
set(gca,'xtick',[91:95])
set(gca,'layer','top')
gtext('\leftarrow 第一季度销量')
gtext('\leftarrow 第二季度销量')
gtext('\leftarrow 第三季度销量')
gtext('\leftarrow 第四季度销量')
xlabel('年','fontsize',16);
ylabel('销售量','fontsize',16);
实例 9:饼图的绘制
function shili09
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 09');
t=[54 21 35;
68 54 35;
45 25 12;
48 68 45;
68 54 69];
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:阶梯图
function shili10
h0=figure('toolbar','none',...
'position',[200 150 450 400],...
'name','实例 10');
a=0.01;
b=0.5;
t=0:10;
f=exp(-a*t).*sin(b*t);
stairs(t,f)
hold on
plot(t,f,':*')
hold off
glabel='函数 e^{-(\alpha*t)}sin\beta*t 的阶梯图';
gtext(glabel,'fontsize',16)
xlabel('t=0:10','fontsize',16)
axis([0 10 -1.2 1.2])
实例 11:枝干图
function shili11
h0=figure('toolbar','none',...
'position',[200 150 450 350],...
'name','实例 11');
x=0:pi/20:2*pi;
y1=sin(x);
y2=cos(x);
h1=stem(x,y1+y2);
hold on
h2=plot(x,y1,'^r',x,y2,'*g');
hold off
h3=[h1(1);h2];
legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)')
xlabel('自变量 X');
ylabel('函数值 Y');
title('正弦函数与余弦函数的线性组合');
实例 12:罗盘图
function shili12
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 12');
winddirection=[54 24 65 84
256 12 235 62
125 324 34 254];
windpower=[2 5 5 3
6 8 12 7
6 14 10 8];
rdirection=winddirection*pi/180;
[x,y]=pol2cart(rdirection,windpower);
compass(x,y);
desc={'风向和风力',
'北京气象台',
'10 月 1 日 0:00 到',
'10 月 1 日 12:00'};
gtext(desc)
实例 13:轮廓图
function shili13
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'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)
axis equal
xlabel('实部','fontsize',16);
ylabel('虚部','fontsize',16);
h=polar([0 2*pi],[0 1]);
delete(h)
hold on
contour(x,y,abs(f),20)
实例 14:交互式图形
function shili14
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 14');
axis([0 10 0 10]);
hold on
x=[];
y=[];
n=0;
disp('单击鼠标左键点取需要的点');
disp('单击鼠标右键点取最后一个点');
but=1;
while but==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-');
hold off
实例 14:交互式图形
function shili14
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 14');
axis([0 10 0 10]);
hold on
x=[];
y=[];
n=0;
disp('单击鼠标左键点取需要的点');
disp('单击鼠标右键点取最后一个点');
but=1;
while but==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-');
hold off
实例 15:变换的傅立叶函数曲线
function shili15
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 15');
axis equal
m=moviein(20,gcf);
set(gca,'nextplot','replacechildren')
h=uicontrol('style','slider','position',...
[100 10 500 20],'min',1,'max',20)
for j=1:20
plot(fft(eye(j+16)))
set(h,'value',j)
m(:,j)=getframe(gcf);
end
clf;
axes('position',[0 0 1 1]);
movie(m,30)
实例 16:劳伦兹非线形方程的无序活动
function shili15
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','实例 15');
axis equal