在纸上精确打印 MATLAB 绘图

18
我有一个需要按照精确尺寸在纸上打印的图表,因为它是按比例缩放的,在纸上可以测量一些东西。有没有最简单的方法(是否可能)来做到这一点?
1个回答

24

编辑:

%# create some plot, and make axis fill entire figure
plot([0 5 0 5], [0 10 10 0]), axis tight
set(gca, 'Position',[0 0 1 1])

%# set size of figure's "drawing" area on screen
set(gcf, 'Units','centimeters', 'Position',[0 0 5 10])

%# set size on printed paper
%#set(gcf, 'PaperUnits','centimeters', 'PaperPosition',[0 0 5 10])
%# WYSIWYG mode: you need to adjust your screen's DPI (*)
set(gcf, 'PaperPositionMode','auto')

%# save as TIFF
print -dtiff -r0 out.tiff

(*): http://www.mathworks.com/help/matlab/creating_plots/printing-images.html

screenshot


2
@Rook:你能否试试另一种方法,使用PaperPositionMode = auto(在自定义显示器DPI设置之后)?还要确保使用TIFF图像作为输出(因为某种原因,EPS / PDF似乎会更大)。 - Amro
2
@Amro - 这个方法很有效... 在纸上恰好是5x10厘米。感谢Amro提供的所有帮助。这对我非常重要。与手动配置所有这些打印参数相比,这将节省我很多时间。 - Rook
@Amro,抱歉评论了这么老的问题,但是...你弄清楚EPS/PDF为什么会变得稍微大一点了吗? - jmlopez
@jmlopez:实际上它们并不更大,这只是我的EPS/PDF查看器设置问题(毕竟,您可以通过使用实际打印机而不是从屏幕上测量来验证这一点!)...请参见我在此处的另一个答案,其中我输出了一个PDF文件,并且测量是准确的。 - Amro
注释掉的那行代码可以运行,而所见即所得编辑器却不能。 - Wok
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接