关闭

MATLAB作图调格式代码

标签: matlabplotadobe文档
348人阅读 评论(0) 收藏 举报
分类:

【原文转载于http://blog.renren.com/share/248921700/11375413652


我学会MATLAB三年了,但至今竟然都看不到一本能讲如何在MATLAB里做figure formatting的中文书,国内(“我们这儿”)对排版的重视程度简直低得令人发指。

今天在老板和办公室其他人的帮助下,终于捣鼓出一个可以比较方便地用MATLAB生成标准格式图片的代码了。

首先声明一下,我认为在文章里出现下面这样的图(MATLAB缺省画出来的图),是很丑很土鳖的。如果不同意的,别往下看了,直接关网页吧……

 

美观的图应该是这样的:

第二,说一下文章中的插图的绝对尺寸:

一般情况下的坐标轴图(比如上图),宽度不应该超过纸张上的行宽度(text width)的一半,超过了就很丑很土鳖了(图片高度可以随意)。以美国通用的letter size paper为例:

Letter sized paper 宽8½ in(英寸),高11 in。一般来说页边距为上下左右各1 in,所以图片宽度不应该超过( 8½ in-2x1 in)÷2 = 3¼ in ≈ 3 in。

另外,图中的数字和坐标轴文字的大小(font size)应该是9 points,英文的正文大小是11 pt(汉字的“五号”相当于10.5 pt)。

所以就有了如下的MATLAB代码:

fig1 = figure;                                              % 给要画的图起个名字,“fig1”,学名叫“门把手”(handle)
xSize = 3; ySize = 2.25;                            %  图片的长和高,3英寸 x 2.25英寸
xLeft = (8-xSize)/2;  yTop = (12-ySize)/2;  
set(fig1,'Units','inches');                                %  单位为英寸
set(fig1,'position',[xLeft yTop xSize ySize]);  % 图片在屏幕上显示的位置
set(fig1,'PaperUnits','inches');                       %  单位为英寸
set(fig1,'PaperPosition',[xLeft yTop xSize ySize]);  % 图片在“纸上”显示的位置

fig1 = plot(x,y,'k');             %  这句话才是在画图

set(gca,'fontsize',9);           % 坐标轴上的数字字号为9 pt
h1 = xlabel('t (s)');  h2 = ylabel('u (m)');    % 坐标轴名称
set(h1,'fontsize',9);             %  X轴的字号为9 pt
set(h2,'fontsize',9);             %  Y轴的字号为9 pt
print('-djpeg','-r600','CuteFred')          % 以600 dpi的分辨率输出一个名为 CuteFred.jpg 的 JPG 图片
print('-depsc','-tiff','-r300','CuteFred')  % 以300 dpi的分辨率输出一个名为 CuteFred.eps 的 EPS 图片
print('-dpdf','CuteFred')                       %  输出一个名为 CuteFred.pdf 的 PDF 图片
print('-dmeta','-r300','CuteFred')         % 输出一个名为 CuteFred.emf 的 EMF 图片

%%% 这四个图片可以同时输出,保存在代码所在的文件夹里

 

画好了之后就可以不加任何修改地放到文档当中了,土鳖一点的小盆友可以把jpg图片粘贴到word里(分辨率至少要300 dpi),略微高风亮节的小盆友建议用emf图片粘贴到word里,Geek们就在LaTeX里直接插入eps或者pdf图片吧——到时候要改动图片的时候只需要在MATLAB里调好代码然后按F5就行,太方便鸟。

*) 用以上代码生成的pdf图片没有自动裁边(crop),所以如果要在pdfLaTeX或者XeLaTeX里用这个pdf文件,还得自己crop(用Adobe Acrobat或者去http://www.pdfscissors.com),其实更麻烦。我目前也不知道解决办法。

-- THE END --


0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9827次
    • 积分:147
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:8篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论