MATLAB作图调格式代码

转载 2012年03月29日 22:13:01

【原文转载于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 --


相关文章推荐

MATLAB作图调格式代码

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

Matlab作图及图形格式设置

通过汇总个人作图常用操作收藏集(包括[Plot][1]和[axis][2]设置),实现信息共享,便于日后向Python Matplotlib举一反三。目录 目录 作图流程 Matlab相关文档 plo...

MATLAB Plotyy作图及句柄设置图形格式

简介 涉及到的点 例子简介上篇反复编写,还是在不断修缮中发现了新问题,找到了新方法。因此,特地以plotyy作图为例,介绍双坐标图绘制及句柄设置图形格式的方法。涉及到的点 时间序列做为X轴的显示问题;...

matlab作图代码

  • 2013-05-24 12:06
  • 68KB
  • 下载

如何在matlab里编程实现bmp到pgm格式的转换

参考博客最近在看人脸识别的相关文献时,需要用到人脸图像的.pgm格式,手上有个人脸图像的.bmp格式库,怎样在matlab里编程实现图像格式的转换呢? 在matlab里,转换图片格式相对比较容易,本...

MATLAB中控制输出格式中小数点后的位数

原文出自:http://www.ilovematlab.cn/thread-67735-1-1.html 声明:本文完全出自Matlab中文论坛jiutongrouwanzi的贴文,在此对其对本人的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)