[R] latex, eps graphics and transparent colors

Michael Friendly friendly at yorku.ca
Wed Apr 13 19:30:17 CEST 2011


I have a diagram to be included in latex, where all my figures are .eps 
graphics (so pdflatex is not an
option) and I want to achieve something
like the following: three concentric filled circles varying in lightness 
or saturation.  It is easiest to do this using
transparency, but in my test using the postscript driver, the 
transparent color fills do not appear.  Is it
correct that postscript() does not support transparency?

circle <-function (radius = 1, segments=61) {
         angles <- (0:segments)*2*pi/segments
         radius * cbind( cos(angles), sin(angles))
}

plot(1:5, 1:5, type='n', xlim=c(-1,5), ylim=c(-1,5), xlab='', ylab='',
         asp=1, xaxt="n", yaxt="n")

#clrs <- trans.colors("lightblue", alpha=c(.2, .4, .6))  ## from heplots 
package
clrs <- c("#ADD8E633", "#ADD8E666", "#ADD8E699")

c1 <- circle(3)
polygon(    c1, col=clrs[1], border="lightblue")
polygon(.67*c1, col=clrs[2], border="lightblue")
polygon(.33*c1, col=clrs[3], border="lightblue")

arrows(-1,  0, 5, 0, angle=10, length=.2, lwd=2, col="darkgray")
arrows( 0, -1, 0, 5, angle=10, length=.2, lwd=2, col="darkgray")

One alternative that sort of works is to use the png() driver, and then
convert fig.png fig.eps
but I need very high resolution to make the real diagram legible.

It might suffice to use hcl() colors to approximate what I've done with 
transparency,
but I don't know how to start with a given color ("lightblue") and 
achieve roughly
similar resuts.

-- 
Michael Friendly     Email: friendly AT yorku DOT ca
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    Web:   http://www.datavis.ca
Toronto, ONT  M3J 1P3 CANADA



More information about the R-help mailing list