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
实例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)
实例17:填充图
function shili17 h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例17'); t=(1:2:15)*pi/8; x=sin(t); y=cos(t); fill(x,y,'r') axis square
off text(0,0,'STOP',... 'color',[1 1 1],... 'fontsize',50,...
'horizontalalignment','center')
实例16:劳伦兹非线形方程的无序活动
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)
实例18:条形图和阶梯形图
function shili18 h0=figure('toolbar','none',... 'position',[200 150 450 250],... 'name','实例18'); subplot(2,2,1) x=-3:0.2:3; y=exp(-x.*x); bar(x,y) title('2-D
Bar Chart')
subplot(2,2,2) x=-3:0.2:3; y=exp(-x.*x); bar3(x,y,'r') title('3-D Bar Chart') subplot(2,2,3) x=-3:0.2:3; y=exp(-x.*x); stairs(x,y) title('Stair Chart') subplot(2,2,4) x=-3:0.2:3; y=exp(-x.*x); barh(x,y) title('Horizontal Bar Chart')
实例19:三维曲线图
function shili19 h0=figure('toolbar','none',... 'position',[200 150 450 400],... '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) grid on xlabel('X轴'); ylabel('Y轴'); zlabel('Z
轴'); title('Figure1:3-D Plot')
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) grid on xlabel('X轴'); ylabel('Y轴'); zlabel('Z轴'); title('Figure2:3-D Plot')
实例20:图形的隐藏属性
function shili20 h0=figure('toolbar','none',... 'position',[200 150 450 300],... 'name','实例20'); subplot(1,2,1) [x,y,z]=sphere(10); mesh(x,y,z) axis off
title('Figure1:Opaque') hidden on
subplot(1,2,2) [x,y,z]=sphere(10); mesh(x,y,z) axis off
title('Figure2:Transparent') hidden off
实例21PEAKS函数曲线
function shili21 h0=figure('toolbar','none',... 'position',[200 100 450 450],...
'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函数形成的曲面')
实例23:视角的调整
function shili23 h0=figure('toolbar','none',... 'position',[200 150 450 350],...
'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') ylabel('Y-axis') zlabel('Z-axis')
title('Figure2') view(-37.5+90,30)
subplot(2,2,3) surf(x,y,z) xlabel('X-axis') ylabel('Y-axis') zlabel('Z-axis')
title('Figure3') view(-37.5,60)
subplot(2,2,4) surf(x,y,z) xlabel('X-axis') ylabel('Y-axis') zlabel('Z-axis')
title('Figure4') view(180,0)
实例26:柱状图
function shili26 h0=figure('toolbar','none',... 'position',[200 50 450 450],... 'name','实例26'); subplot(2,1,1) x=[5 2 1 8 7 3 9 8 6 5 5 5 4 3 2]; bar(x) xlabel('X
轴'); ylabel('Y轴'); title('第一子图');
subplot(2,1,2) y=[5 2 1 8 7 3 9 8 6 5 5 5 4 3 2]; barh(y) xlabel('X轴'); ylabel('Y
轴'); title('第二子图');
实例86:三次样条插值法
h0=figure('toolbar','none',... 'position',[200 50 350 450],... 'name','实例86'); h1=axes('parent',h0,... 'position',[0.10 0.45 0.8 0.5],... 'visible','off');
x=0:0.2:2*pi; y=sin(x); plot(x,y) b1=uicontrol('parent',h0,...
'units','points',... 'tag','b1',... 'style','pushbutton',... 'string','三次样条插值',... 'backgroundcolor',[0.75 0.75 0.75],... 'position',[20 60 70 20],... 'callback',[... 'y=0,',... 'sy=0,',... 'strn1=get(e2,''string'');,',...
'n1=str2num(strn1);,',... 'strn2=get(e3,''string'');,',...
'n2=str2num(strn2);,',... 'x=n1:0.2:n2;,',... 'i=1;,',... 'for t=n1:0.2:n2,',...
'y(i)=sin(t);,',... 'sy(i)=san(t,n1,n2);,',... 'i=i+1;,',... 'end,',...
'plot(x,y,''b*'',x,sy,''r-''),',... 'axis([0 7 -1.5 1.5]),',... 'legend(''sin(x)'',''N-Hermite插值'')']); b2=uicontrol('parent',h0,... 'units','points',... 'tag','b2',... 'style','pushbutton',... 'string','误差比较',... 'backgroundcolor',[0.75 0.75 0.75],... 'position',[170 60 70 20],... 'callback',[... 'strdn1=get(e2,''string'');,',... 'n1=str2num(strdn1);,',...
'strdn2=get(e3,''string'');,',... 'n2=str2num(strdn2);,',... 'strdn=get(e1,''string'');,',... 'dn=str2num(strdn);,',...
'dd=abs(sin(dn)-san(dn,n1,n2));,',... 'msgbox([''误差为:'',num2str(dd)],''计算结果'')']); e1=uicontrol('parent',h0,... 'units','points',... 'tag','e1',...
'style','edit',... 'fontsize',12,... 'string','1.20',...
'horizontalalignment','right',... 'backgroundcolor',[1 1 1],... 'position',[200 100 40 20]); t1=uicontrol('parent',h0,... 'units','points',... 'tag','t1',...
'style','text',... 'string','误差点:',... 'fontsize',12,... 'backgroundcolor',[0.75 0.75 0.75],... 'position',[160 100 40 20]); e2=uicontrol('parent',h0,... 'units','points',... 'tag','e2',...
'style','edit',... 'fontsize',12,... 'string','1.00',...
'horizontalalignment','right',... 'backgroundcolor',[1 1 1],... 'position',[20 85
40 20]); t2=uicontrol('parent',h0,... 'units','points',... 'tag','t2',...
'style','text',... 'string','第一节点:',... 'fontsize',12,... 'backgroundcolor',[0.75 0.75 0.75],... 'position',[15 105 50 20]); e3=uicontrol('parent',h0,... 'units','points',... 'tag','e3',...
'style','edit',... 'fontsize',12,... 'string','3.00',...
'horizontalalignment','right',... 'backgroundcolor',[1 1 1],... 'position',[100 85 40 20]); t3=uicontrol('parent',h0,... 'units','points',... 'tag','t3',...
'style','text',... 'string','第二节点:',... 'fontsize',12,... 'backgroundcolor',[0.75 0.75 0.75],... 'position',[95 105 50 20]); b3=uicontrol('parent',h0,... 'units','points',... 'tag','b3',...
'style','pushbutton',... 'string','关闭',... 'backgroundcolor',[0.75 0.75
0.75],... 'position',[100 20 60 20],... 'callback','close');