[R] Exporting R graphics into Word without losing graph quality

Marc Schwartz marc_schwartz at me.com
Mon Dec 16 17:02:51 CET 2013


On Dec 16, 2013, at 8:39 AM, David Carlson <dcarlson at tamu.edu> wrote:

> This will create a simple plot using Windows enhanced metafile
> format:
> 
>> win.metafile("TestFigure.emf")
>> plot(rnorm(25), rnorm(25))
>> dev.off()
> null device 
>          1 
>> 
> 
> Windows does not read pdf.


This is correct for Office on Windows, not for Office on OSX. However, if you share the Office document created on OSX that has a PDF embedded with Windows Office users, they will see a bitmapped version of the graphic, rather than the PDF.


> It will offer to import an eps
> (encapsulated postscript) file, but it only imports the bitmap
> thumbnail image of the figure so it is completely useless.


Regarding EPS imports, this is NOT correct.

Word and the other Office apps will import the EPS file. It cannot render the postscript however, thus it will **display** a bitmapped preview image.

If you print the Word document using a PS compatible printer driver, you will get the full high quality vector based graphic output. If you print to a non-PS compatible printer, the bitmapped preview is what will be printed.

You may need to install EPS import filters for Office if they were not installed during the initial Office installation.

That being said, while it has been years since I was on Windows, I used to use the WMF/EMF format to import or just copy/paste into Word, when I needed a document containing an R plot that could be shared with others. In most cases, the image quality was fine.

Regards,

Marc Schwartz


> You
> can edit a metafile in Word, but different versions seem to have
> different issues. Earlier versions would lose clipping if you
> tried to edit the file, but World 2013 works reasonably well.
> Text labels can jump if you edit the figure in Word (especially
> rotated text) although it is simple to drag them back to where
> you want them. I haven't tried 2010 or 2007 recently.
> 
> -------------------------------------
> David L Carlson
> Department of Anthropology
> Texas A&M University
> College Station, TX 77840-4352
> 
> 
> 
> 
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Duncan
> Murdoch
> Sent: Sunday, December 15, 2013 5:24 PM
> To: david hamer; r-help at r-project.org
> Subject: Re: [R] Exporting R graphics into Word without losing
> graph quality
> 
> On 13-12-15 6:00 PM, david hamer wrote:
>> Hello,
>> 
>> My x-y scatterplot produces a very ragged best-fit line when
> imported into
>> Word.
> 
> Don't use a bitmap format (png).
> 
> Don't produce your graph in one format (screen display), then
> convert to 
> another (png).  Open the device in the format you want for the
> final file.
> 
> Use a vector format for output.  I don't know what kinds Word
> supports, 
> but EPS or PDF would likely be best; if it can't read those,
> then 
> Windows metafile (via windows() to open the device) would be
> best. 
> (Don't trust the preview to tell you the quality of the graph,
> try 
> printing the document.  Word isn't quite as bad as it appears.)
> 
> Don't use Word.
> 
> Duncan Murdoch
> 
>> 
>> 
>> 
>> * >plot (data.file$x, data.file$y, type = "p", las=1, pch=20,
> ylab =
>> expression("Cover of Species y" ~ (m^{2}~ha^{-1} )),
> xlab =
>> expression("Cover of Species x" ~ (m^{2}~ha^{-1}))  )
>> lines  (
>> data.file$x,   fitted ( model.x )  )*
>> 
>>  A suggestion from the internet is to use .png at high (1200)
> resolution.
>>    * >dev.print  ( device = png,  file = "R.graph.png",
> width = 1200,
>> height = 700)*
>> This gives a high-quality graph, but the titles and tick-mark
> labels become
>> very tiny when exported into Word.
>> 
>> I therefore increased the size of the titles and tick-mark
> labels with cex.
>>    * >plot (......cex =1.8, cex.lab = 1.8, cex.axis =
> 1.25,....)*
>> But this causes the x-axis title to lie on top of the
> tick-mark labels.
>> (This problem does not occur with the y-axis, where the title
> lies well
>> away from the y-axis tick-mark labels.)
>> Changing margins     * >par ( mai = c ( 1.3, 1.35, 1, .75 ) )*
> does not
>> seem to have any effect on this.
>> 
>> A suggestion from the internet is to delete the titles from
> plot, and use
>> mtext with line=4 to drop the title lower on the graph.
>> 
>> * >plot (.......  ylab = " ", xlab = " ".....)    >mtext(side
> = 1, "Cover
>> of Species x (superscripts??)", line = 4)*
>> This works, but with mtext I have now lost the ability to have
> the
>> superscripts in the axis title.
>> 
>> And I am back full circle, having to lower the resolution of
> the graph to
>> keep the x-axis title away from the axis, and thus reverting
> to a ragged,
>> segmented "line" when exported to Word......
>> 
>> Final note:  The R graphics window version of the graph
> becomes very
>> distorted, even though the graph may be of high quality (other
> than the
>> problem of the x-axis title overlaying the x-axis tick-mark
> labels) once in
>> Word.  I guess this is because of using "tricks" to try to get
> a desired
>> end-product in Word....
>> 
>> Thanks for any suggestions,
>>          David.



More information about the R-help mailing list