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的中文书,国内(“我们这儿”)对排版的重视程度简直低得令人发指。 今天在老板和办公室其...
  • DreamD1987
  • DreamD1987
  • 2012年02月02日 05:47
  • 2286

常见的MATLAB绘图程序

 y=[3,7,9,1,5,2,8]; subplot(1,2,1),plot(y,'linewidth',2),grid x=[3,3,9;8,1,2;1,8,5;7,9,1]; sub...
  • Jesse_Shaw
  • Jesse_Shaw
  • 2016年11月20日 17:09
  • 860

simpleui4matlab 四行代码搞定二值化调参

如果你厌倦了:改参数,运行,改参数,运行。。。 你想要快速地创建修改参数的 UI 界面, 你可以试试 simpleui4matlab !开发目的:让图像处理,机器视觉相关的参数调试更加方便下载地址 ...
  • qq535033459
  • qq535033459
  • 2016年05月10日 17:00
  • 637

matlab三维绘图

在matlab中,常用的三维图形包括三维曲线,三维网格图和三维曲面图的绘制,分别采用plot3()、mesh()、和surf()进行绘制 --------------------------...
  • hanghang121
  • hanghang121
  • 2014年04月17日 10:10
  • 1491

【matlab】 隐函数作图函数 ezplot

MATLAB之隐函数作图ezplot >> help ezplot ezplot - Easy-to-use function plotter   易于使用的函数绘图机     This MAT...
  • u013346007
  • u013346007
  • 2017年01月17日 22:09
  • 2443

matlab 画图基本介绍

1.在命令窗口输入命令时,可以不必每输入一条命令就按enter键执行,可以在输入几行后一同运行。方法是:换行时,只要在按住键的同时按键即可,否则matlab就会执行上面输入的所有语句。 2.如何将数据...
  • u012510648
  • u012510648
  • 2016年08月23日 14:58
  • 5014

MATLAB作图的一些总结

MATLAB真的很强大。 最近一直在用MATLAB处理数据,其中过程痛苦并快乐着,现在处理告一段落,来总结一下关于用MATLAB作图的一些心得吧。 1 如何画双轴图  参考链接:http...
  • kent_ssm
  • kent_ssm
  • 2016年08月14日 20:12
  • 441

Matlab 基本命令、快捷键及常用操作

有关命令行环境的一些操作 (1) clc 擦去一页命令窗口,光标回屏幕左上角 (2) clear 从工作空间清除所有变量 (3) clf 清除图形窗口内容 (4) who ...
  • zzhays
  • zzhays
  • 2012年10月06日 17:50
  • 1691

matlab 作图

x=[1:pi/4:30]; y=sin(x); z=cos(x); figure(1); plot(x,y,'c');figure(2);plot(x,z,'ro');figure(3);plot...
  • chuminnan2010
  • chuminnan2010
  • 2014年04月04日 10:52
  • 492

matlab plot绘图

看到很多论文做的图都很漂亮,特此简单学习一下,文章后面有很多软件要学习,还有待进一步认真学习,matlab只是一个菜鸟级别的水平: function [ ] = Overhead_rate_step_...
  • langb2014
  • langb2014
  • 2015年09月23日 15:16
  • 2514
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MATLAB作图调格式代码
举报原因:
原因补充:

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