Making the second layer of legend have full transparency seems to have fixed the issue. My first layer has to have a white background because I have a colored grid behind (sorry that didn't make it into my toy example).
I did try to use type="Xlib", but I get the error "libpng warning: Application built with libpng-1.2.26 but running with 1.5.2" My sessionInfo() is R version 2.13.1 RC (2011-07-04 r56273) Platform: i386-apple-darwin9.8.0/i386 (32-bit) locale: [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8 attached base packages: [1] stats graphics grDevices utils datasets methods base Thanks for your help, I never would have realized I needed to use a transparent background. On Tue, Jul 26, 2011 at 2:22 AM, Barry Rowlingson < b.rowling...@lancaster.ac.uk> wrote: > On Tue, Jul 26, 2011 at 12:23 AM, Amelia McNamara > <amelia.mcnam...@stat.ucla.edu> wrote: > > I am trying to create a plot that has multiple plot characters for > > each point (e.g. a point within a triangle, a triangle within a > > square, etc). The workaround I have found to do this is by plotting > > twice, as in this example: > > > > x <- c(1.1, 2.3, 4.6) > > y <- c(2.0, 1.6, 3.2) > > plot(x, y) > > points(x,y, pch=20, col="red", cex=0.5) > > > > This works, but perhaps there is a better way to do it in one step? My > > main problem comes when I want to make a legend. The workaround I have > > here is to again plot twice, as in > > > > legend(x="bottomright", legend=c("Category 1"), text.col="white", > > title="Fairly long title", title.col="white", col=c("red"),pch=20, > > pt.cex=0.5, bty="o", bg="white") > > legend(x="bottomright", legend=c("Category 1"), title="Fairly long > > title", pch=1, bty="o") > > > > which produces the correct image in my Quartz window. I have to > > include the title and legend text in both versions, plotting the first > > one in white to avoid the text getting overplotted while still > > creating a legend border of the appropriate size. > > > > However, when I try to save this as a png, only the most recently > > plotted legend is captured. Saving as a pdf works, but the deliverable > > for this project is a png file and I would like to be able to produce > > them directly from R. Is there a way for me to capture both legends in > > a png? Or is there a better way for me to plot multiple symbols for a > > single point? > > Have you tried specifying the background colour as a transparent colour? > > try bg="#FF000000" - the first hex doublet is full transparency, the > next three doublets can be anything - in both. > > Note that your example looks fine for me as you gave it - I suspect > the MacOS quartz PNG driver is doing something different to the Xlib > driver. Can you use type="Xlib" on your png() function call? What's > your R version? And sessionInfo() output? > > Barry > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.