[R] Quality of graphics produced as windows metafiles

Michael J. Manning mj.manning at niwa.co.nz
Tue Jun 17 07:34:05 CEST 2003


Hi all

My details:
platform i386-pc-mingw32
arch     i386
os       mingw32
system   i386, mingw32
status
major    1
minor    7.0
year     2003
month    04
day      16
language R

Please excuse my woeful ignorance, but when I copy the contents of an 
R-graphics window produced using "windows()" (or any of its close 
relations) to the clipboard as a windows metafile and then paste the 
contents into another document, typically an MS Word file, the quality 
of the graphics produced seems to vary considerably.

I can produce sharp looking results if the R-graphics window contains a 
single graph only; however, if I partition the graphics window using 
"par(mfrow=c(x,y))" or similar and draw multiple graphs, then the 
quality of the results produced by the copy and paste declines as x and 
y increase, with curves becoming increasingly pixelated etc.

On screen, as the number of graphs on the device increases, the quality 
of the graphics on screen declines, I guess, as the device has to more 
graphics with less available pixels per graph. Hence, if the content 
copied to the clipboard is just a snapshot of what's on screen, then I 
can understand the drop in quality when I paste the contents of the 
clipboard where I want them ("garbage in=garbage out" principle...).

However, if I create a windows metafile directly with 
"win.metafile(file=....)", draw multiple graphs, and close the device 
the results seem to be no better, i.e. curves pixelated etc. E.g.

win.metafile(file="test.wmf",pointsize=8,height=8.5,width=5.75)
par(mfrow=c(5,2))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
plot(density(rnorm(1000))
dev.off()

I note that the help page for "windows()" states that the number of 
pixels per inch can be specified and passed to the "windows()" device 
(and hence on to "win.metafile()" and "win.graph()") via the "xpinch" 
and ypinch" arguments. I have tried adjusting these without much succes, 
e.g.

windows(rescale="fit",xpinch=102,ypinch=77)#<-- xpinch and ypinch values 
from post to R-help, 11 Sept 2001
....
windows(rescale="fit",xpinch=204,ypinch=154)
....

All suggestions gratefully appreciated.

Cheers

MJM
-- 

Michael J. Manning
National Institute of Water and Atmospheric Research Ltd (NIWA)
Private Bag 14901, Kilbirnie,
Wellington, New Zealand
Tel +64 4 386 0851
Fax +64 4 386 0574




More information about the R-help mailing list