设计教室
设计欣赏|图形图像|媒体动画|机械电子|CI设计|设计文献|PhotoShop|Corel3Dmax|Flash|AutoCad|设计视频
首页 > 设计教室 > 机械电子 > MATLAB > 正文

Matlab 任意布置子图和轴外注释


10.7.2 任意布置子图和轴外注释

【 * 例 10.7.2 -1 】本例演示: axes 轴位框设计、 rectangle 的运用、及轴外注释。所谓轴外注释,实际上是使用了两个轴位框。一个轴位框充满全部图形窗,其坐标框被隐去,而只写注释文字。而另一个比较小的轴位框用于绘图。这样从外表看去,注释就处于那小轴位框的外部。

clf

% 图形数据的产生

zeta2=[0.2 0.4 0.6 0.8 1.0];n=length(zeta2);

for k=1:n;Num{k,1}=1;Den{k,1}=[1 2*zeta2(k) 1];end

S=tf(Num,Den); % 产生单输入多输出系统

t=(0:0.4:20)'; % 时间采样点

[Y,x]=step(S,t); % 单输入多输出系统的响应

tt=t*ones(size(zeta2)); % 为画彩带图,生成与函数值 Y 维数相同的时间矩阵。

% 产生全窗轴位框,并隐去坐标轴

clf reset,H=axes('Position', [0, 0, 1, 1], 'Visible', 'off');

% 产生包含多行字符串的元胞数组

str{1}='/fontname{ 隶书 } 二阶系统阶跃响应 '; %<11>

str{2}='y(t) = 1 - /beta^{-1}e^{-/zetat}sin(/betat + /theta)';

str{3}=' ';str{4}='/fontname{ 隶书 } 其中: ';

str{5}='/beta = (1 - /zeta^{2})^{0.5}';

str{6}='/theta = arctg(/beta//zeta)';

str{7}='/zeta = .2, .4, .6, .8, 1'; %<15>

% 使 H 句柄轴对象成为当前轴,然后注释多行文字。

set(gcf, 'CurrentAxes',H) %<18>

text(0.01, 0.73, str, 'FontSize', 12) %<19>

h1=axes('Position', [0.45, 0.45, 0.5, 0.5]); % 产生右半窗的轴位框

ribbon(tt,Y,0.4) % 在 h1 轴位框中画彩带图

% 对 X 轴、 Z 轴重标刻度值

set(h1,'XTickLabelMode','manual','XTickLabel','0|0.4|0.8|1.2');%<23>

set(h1,'ZTickLabel','0|1.0|2.0'); %<24>

% 低层指令标识轴名

set(get(h1,'XLabel'),'String','/zeta /rightarrow','Rotation',17.5)

set(get(h1,'YLabel'),'String','/leftarrow t','Rotation',-25) %<27>

set(get(h1,'Zlabel'),'String','y /rightarrow')

h2=axes('Position',[0.03, 0.08, 0.27, 0.27]);% 在左下角,产生小的轴位框。

plot(tt,Y) % 在 h2 轴对象上画二维图

% 在右下方画系统方块框图

h3=axes('Position',[0.37,0.04,0.63,0.32]); % 设置画框图的轴位框

set(h3,'Xlim',[0,1.2],'Ylim',[0,0.5]) % 设置轴的刻度范围

set(h3,'DataAspectRatio',[1 1 1]) % 设置刻度比例

set(h3,'ColorOrder',[0,0,0]) % 设置绘线的首选用色

set(h3,'Visible','off') % 隐去坐标轴

hh1=rectangle('Position',[0.5,0.2,0.4,0.2],'Curvature',[0,0]);

% 画方框 <37>

hh2=rectangle('Position',[0.2,0.26,0.08,0.08],'Curvature',[1,1]);

% 画圆框 <38>

xx1=0.05:0.01:0.2;xx2=0.28:0.02:0.5;

xx3=0.9:0.02:1.1;xx4=0.24:0.02:1;

yy5=0.1:0.02:0.26;yy6=0.1:0.02:0.3;

yy1=0.3*ones(size(xx1));yy2=0.3*ones(size(xx2));

yy3=0.3*ones(size(xx3));yy4=0.1*ones(size(xx4));

xx5=0.24*ones(size(yy5));xx6=ones(size(yy6));

line(xx1,yy1);line(xx2,yy2);line(xx3,yy3);line(xx4,yy4);

line(xx5,yy5);line(xx6,yy6)

line(0.17,0.3,'Marker','>','MarkerFaceColor','k')

line(0.47,0.3,'Marker','>','MarkerFaceColor','k')

line(1.1,0.3,'Marker','>','MarkerFaceColor','k')

line(0.24,0.23,'Marker','^','MarkerFaceColor','k')

上一篇: Matlab 图形窗的图形编辑功能
下一篇:MATLAB教程: 数组运算和矩阵运算

评论  点击查看
 
设计频道推荐
设计热点文章