[R] latex, eps graphics and transparent colors

Jim Lemon jim at bitwrit.com.au
Thu Apr 14 10:46:03 CEST 2011


On 04/14/2011 03:30 AM, Michael Friendly wrote:
> 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.
>
Hi Michael,
For a "one off" job, I would probably do the transparent overlays in the 
pdf device, open the result in xpdf or Acrobat and then use the GIMP to 
identify the resulting colors from a screen shot. Then redo the plot in 
the postscript device using the opaque colors. This is only an 
approximation, of course, but it gets the job done.

Jim



More information about the R-help mailing list