Matlab图 - >单词 - > PDF导致质量不佳

时间:2013-09-16 15:29:35

标签: matlab plot ms-word figure

我使用matlab创建一些数字并使用“编辑 - >复制图”并使用设置“保留信息(如果可能的元文件)”导出它们。我在Word 2010中导入它。但是,如果我将单词文档转换为“另存为pdf”,则数字会有工件。

以下图片给您留下了深刻印象。左边是400%缩放的Word,右边是400%缩放的pdf。可以清楚地看到虚线变成直线等。我该如何避免这种情况?

enter image description here

3 个答案:

答案 0 :(得分:2)

对am304给出的答案进行了扩展 - 我刚刚测试了以下内容:

figure
% create a plot with some fine detail:
plot(sin(1./linspace(0.02, 1, 1000)));
% set the "paper size" of the figure (not the size on screen) to 30x20 cm:
set(gcf, 'PaperUnits', 'centimeters', 'PaperPosition', [0 0 30 20]);
% "print" to png with a resolution of 300 dpi
print('-dpng', 'myplot.png', '-r300');

这会导致以下图片保存到磁盘(裁剪以显示细节): enter image description here

全尺寸图片仅为43 kB - 但它是一个非常高分辨率(300 dpi)的渲染,因此您可以看到绘图的精细细节。

我可以将此图片插入Word文档并将其另存为pdf。当我然后拍摄pdf的屏幕截图时,它看起来像这样:

enter image description here

正如你所看到的那样 - 细节就在那里。

答案 1 :(得分:1)

您可以使用print功能将图形导出为各种格式。 EPS或TIFF应该会给出好的结果。如果你想要高质量的数字,我不会使用“编辑 - >复制图”。

答案 2 :(得分:0)

我使用这里的评论来创建我自己的方法(也借助于How to set the plot in matlab to a specific size?)。所以这是我的功能:

function figureprint(hFig, width, height, res, filename)

%# figure size printed on paper
set(hFig, 'PaperUnits','centimeters')
set(hFig, 'PaperSize',[width height])
set(hFig, 'PaperPosition',[0 0 width height])
set(hFig, 'PaperOrientation','portrait')

%# export
print(hFig, '-dpng', res, filename)

此功能将图形打印为特定尺寸(cm)。 E.g。

 figureprint(hFig, 12, 10, '-r1500', 'testPng.png')

所以“hFig”保存为宽度为12厘米,高度为10厘米的* .png。我测量了这个,这很好。优化当然是可能的。

如果您使用

set(gca,'LooseInset', get(gca,'TightInset'))

切割y值乘法因子的指数(当绘制大数字时)(见图)。在这种情况下,您必须修改值,例如像这样:

tight = get(gca,'TightInset');
tight(1,4) = 0.08;
set(gca,'LooseInset',tight)

enter image description here