首先需要注意的是:我在SuperUser上发布了这个问题here,但它显然是问R问题的错误地方.我承认这不是一个直接的编程问题,但我相信可以通过改变绘图方式(即通过适当编码)来解决.所以我希望读者们觉得这个论坛很合适.
R图通常完全由矢量图形元素(即点、线、多边形、文本)组成.R允许您以各种格式保存图形(或复制粘贴),包括各种光栅格式、PDF格式或Windows元文件.
我通常把我的图片保存为PDF格式并打印出来.这使图像完全符合我在纸上的预期,具有最高的质量.我避免使用光栅格式(如JPG、TIFF)进行打印,因为不可避免地质量较差,出版商更喜欢矢量格式.
但是,我需要使用Microsoft Word 2007制作一个大型多页桌面发布文档,因此不能使用PDF.当我从元文件导入图形,或直接从R复制并粘贴到Word中时,图像的屏幕和打印渲染都会发生轻微变化(例如,多边形及其填充会略微错位).
考虑到我想保持高矢量质量(而不是使用光栅格式),我该怎么做才能使R矢量图形与Word一起工作?(当然,Swave和LaTeX会很好,但同样,这不是一个现实的 Select ).
考虑这个例子:
plot(c(1:100), c(1:100), pch=20)
## Copy and paste to Word 2007 as Windows metafile
## Print
## Quality is poorer (e.g. dot fills misaligned with borders)
pdf("printsPerfectly.pdf")
plot(c(1:100), c(1:100), pch=20)
dev.off()
## Now print PDF
## Quality is as expected
编辑:根据@John I的建议,将其制作成EPS postscript文件(见下文),并将其作为图片插入Word.因为最终它将从Word创建的PDF打印出来,所以我使用默认Word 2007设置将其转换为PDF,在我的HP Laserjet P1606dn激光打印机上打印,然后拍摄照片来说明多边形边界和填充不对齐的问题(左图,下图).我还使用pdf()
从R直接生成了PDF,打印了PDF并拍了一张照片(右图,下图).
这看起来像小土豆!但是,当你费尽心机go 实现高质量时,最终被挫败是令人失望的.此外,这里的数字并不明显,但数字的质量(左)不如PDF(右)中的高,忽略了照片上的焦距差异.