注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王小二的博客

勤俭以修身,淡泊以明志

 
 
 

日志

 
 

matlab 图形窗口大小的设置以及子图相对位置的设定  

2012-10-08 20:45:20|  分类: 专业相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在利用matlab绘制图形时,如果需要产生多个子图,这就涉及到子图相对位置的设定已经整个图形窗口的大小

 关于figure的三个不同命令

>> fid=figure(11);
>> get(fid,'outerposition')       % 图形窗口(Figure position including title bar, menu bar, tool bars, and outer edges)相对于屏幕的位置

ans =

    16    68   593   932    % 593和932分别代表整个图形窗口的宽度(横向)和高度(竖向)

>> get(fid,'position')     % 与outerposition的区别在于 不包含标题栏、菜单栏、工具栏等外围的东西

ans =

    20    72   585   850

figure的position中的[left bottom width height] 是指figure的可画图的部分的左下角的坐标以及宽度和高度。

>> get(fid,'paperposition')   %  定义落实在纸张上的实际可视图形与边缘的距离和整个图形的大小

ans =

    0.6345    6.3452   20.3046   15.2284

 需要获取调整后的图形,有两种不同的方法,真正有用的是position 和paperposition

利用position参数得到的图形在生成的figure窗口中可以得到最满意的图形,但是,如果想在word文档中得到你所看到的结果,就只能通过窗口上的File-save as手动保存,因为利用saveas得到的图形是无法保存你所看到的样式的。 这虽然麻烦,但是得到的图形分辨率相对较高

 与position 相比,paperposition可以直接通过saveas命令保存满意的图像,但是这种图像在直接生成的figure窗口中并不是那么令人满意的,但是这并不妨碍最终的美好结果。

在利用paperposition 设置图形中的字体大小时,通过fid=figure(11); axes('fontsize',16)得到的效果很弱,或者说没有效果,如果希望子图的字体足够清楚,可以通过subplot 来实现

fid=figure;

set(fid,'paperposition',[3.0,3.5,15,30]);   
h1=subplot(3,1,1);
po=get(h1,'position');
subplot(3,1,1,'replace');
subplot('position',[po(1),po(2)-0.02,po(3),po(4)],'fontsize',16);  % 调整子图之间上下的距离

注意:两者的尺度因子是不一样的!!

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

调整子图之间的相对位置和大小,所用的也是position 参数,不过是用在subplot 指令上

Example 1

fid1=figure(11);
set(fid1,'position',[20 72 585 850]);

h1=subplot(4,2,1);
po=get(h1,'position');
subplot(4,2,1,'replace');
subplot('position',[po(1),po(2)-0.01,po(3),po(4)],'fontsize',16);
r1=mean(rt(k1,:));
plot(yr,r1,'linewidth',1.5);
xlim([1961 2009]);

需要手动保存!

 Example 2

fid2=figure(22);
%set(fid2,'position',[20 72 585 850]);
set(fid2,'paperposition',[0.5,5.5,25,40])
h1=subplot(4,2,1);
po=get(h1,'position');
subplot(4,2,1,'replace');
subplot('position',[po(1),po(2)-0.01,po(3),po(4)],'fontsize',16);
r1=mean(rt(k1,:));
plot(yr,r1,'linewidth',1.5);
xlim([1961 2009]);

程序自动保存!

【转自】:http://hi.baidu.com/rubby0913/item/eebad16cdcae073aac3e8389
  评论这张
 
阅读(10394)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017