fantuanxiaot之作图之道
本帖隐藏的内容
- % 可以任意布置子图和轴外的注释
- % copyright by fantuanxiaot
- % follow by my fantuanxiaot's beautiful plot
- % 改编《精通Matlab6.5版》
- clc
- clear all
- close all
- zeta=linspace(0.2,1.2,6);
- n=length(zeta);
- for k=1:n
- Num{k,1}=1;
- Den{k,1}=[1 2*zeta(k) 1];
- end
- Num
- Den
- S=tf(Num,Den);
- t=0:0.5:20;
- t=t';
- [Y,x]=step(S,t);
- tt=t*ones(1,length(zeta));
- clc
- % 重设一个图
- clf reset
- pause(2)
- % 让图行换个中间的位置吧
- set(gcf,'position',[280 96 860 570])
- H=axes('position',[0 0 1 1],'visible','off')
- pause(1)
- % [0.5 1 1]是一种浅蓝色
- set(gcf,'color',[0.5 1 1])
- % clf reset,H=axes('position',[0.1 0.1 0.85 0.85])使得其成为标准的尺度
- % 或者利用clf reset,set(gca,'position',[0.1 0.1 0.85 0.85]...
- % ,'xcolor','b','ycolor','m')进行操作
- str{1}='\fontname{楷体}二阶系统阶跃响应曲线的作图'
- str{2}='\fontname{Times New Roman}y(T)=1-\beta^{-1}e^{-\zeta}sin(\betaT+\thetaT)'
- str{3}=''
- str{4}='\fontname{楷体}其中可知'
- str{5}='\fontname{Times New Roman}\beta=(1-\zeta^{2})^{0.5}'
- str{6}='\fontname{Times New Roman}\theta=arctan(\beta/\zeta)'
- str{7}='\fontname{Times New Roman}\zeta=0.2,0.4,0.6,0.8.1.0.1.2'
- % 将其设立为当前的轴
- % 整个高度是1,因此要设立在合适的高度
- set(gcf,'CurrentAxes',H)
- text(0.01,0.79,str,'fontsize',12)
- pause(2)
- h1=axes('position',[0.45 0.45 0.5 0.5]);
- set(h1,'fontname','Times New Roman','xcolor','r','ycolor','b','fontsize',12)
- % 0.6是带子的宽度
- ribbon(tt,Y,0.6)
- pause(1.5)
- title('缎带图','fontname','楷体')
- set(h1,'xticklabelmode','manual','xticklabel','0|0.4|0.8|1.2')
- set(h1,'zticklabel','0|1|2')
- set(get(h1,'xlabel'),'string','\zeta \rightarrow','rotation',17,'fontsize',16)
- set(get(h1,'ylabel'),'string','\leftarrow t','rotation',-26,'fontsize',16,'fontname','Times New Roman')
- set(get(h1,'zlabel'),'string','y \rightarrow','fontsize',16,'fontname','Times New Roman')
- pause(1)
- set(gca,'xcolor','r','ycolor','b','zcolor','m')
- pause(1.5)
- h2=axes('position',[0.05 0.05 0.41 0.41])
- plot(tt,Y,'linewidth',1)
- title('线形图','fontname','楷体')
- % gca随之变动
- set(gca,'color','y','fontname','Times New Roman')
- pause(1.5)
- h3=axes('position',[0.5 0.04 0.5,0.33])
- set(gca,'fontname','Times New Roman','fontsize',10)
- set(h3,'xlim',[0,1.2],'ylim',[0,0.5])
- % 绘线用紫色
- set(h3,'visible','off','colororder',[0.5 0 1])
- % [0.5 0 1]是自己设定的紫色,[0.7 0 1]也可以
- % 方框
- rectangle('position',[0.5,0.2,0.4,0.2],'curvature',[0,0],'LineWidth',2,'LineStyle','--',...
- 'facecolor','m','edgecolor',[0.7 0 1])
- % [0,0]是正方形,[1,1]是圆形
- pause(0.5)
- rectangle('position',[0.2,0.26,0.08,0.08],'curvature',[1,1],'LineWidth',2,'LineStyle','--',...
- 'facecolor','m','edgecolor',[0.7 0 1])
- % 对线进行标记
- xx1=0.05:0.01:0.2;
- yy1=0.3*ones(size(xx1));
- line(xx1,yy1,'linewidth',2)
- pause(0.3)
- xx2=0.28:0.02:0.5;
- yy2=0.3*ones(size(xx2));
- line(xx2,yy2,'linewidth',2)
- pause(0.3)
- xx3=0.9:0.02:1.1;
- yy3=0.3*ones(size(xx3));
- line(xx3,yy3,'linewidth',2)
- pause(0.3)
- xx4=0.24:0.02:1;
- yy4=0.1*ones(size(xx4));
- line(xx4,yy4,'linewidth',2)
- pause(0.3)
- yy5=0.1:0.02:0.26;
- xx5=0.24*ones(size(yy5));
- line(xx5,yy5,'linewidth',2)
- pause(0.3)
- yy6=0.1:0.02:0.3;
- xx6=ones(size(yy6));
- line(xx6,yy6,'linewidth',2)
- pause(0.3)
- xx7=0.56:0.02:0.84;
- yy7=0.3*ones(size(xx7));
- line(xx7,yy7,'linewidth',2)
- pause(1)
- % 对箭头进行标记
- line(0.17,0.3,'marker','>','markerfacecolor','k')
- line(0.47,0.3,'marker','>','markerfacecolor','w')
- line(0.24,0.23,'marker','>','markerfacecolor','g')
- line(1.1,0.3,'marker','>','markerfacecolor','r')
- line(0.17,0.35,'marker','+','markeredgecolor','b','markersize',8)
- pause(0.5)
- text(0.27,0.23,'-','fontsize',18)
- text(0.05,0.35,'u(t)','fontname','Times New Roman')
- text(1,0.35,'y(t)','fontname','Times New Roman')
- text(0.65,0.26,'s^{2}+2\zetas','fontname','Times New Roman')
- text(0.68,0.35,num2str(1),'fontname','Times New Roman')
- set(gcf,'name','fantuanxiaot的改编作图')
复制代码