Skip to content
Prev 256752 / 398506 Next

latex, eps graphics and transparent colors

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.