[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