Dear Deepayan, thank you very much, this works great.
Cheers, Marius On 2011-04-01, at 13:58 , Deepayan Sarkar wrote: > On Thu, Mar 31, 2011 at 3:26 AM, Marius Hofert <m_hof...@web.de> wrote: >> Dear Deepayan, >> >> thanks for answering. It's never too late to be useful. >> >> I see your point in the minimal example. I checked the z-axis limits in my >> original problem for the point to be inside and it wasn't there. I can't >> easily >> reproduce it from the minimal example though. I'll get back to you if I run >> into >> this problem again. >> >> In the example below, both points are shown. Although one lies clearly >> below/under >> the surface, it looks as if it lies above. One would probably have to plot >> this >> point first so that the wire frame is above the point. But still, this is >> misleading since the eye believes that the wireframe is *not* transparent. >> This >> happens because the lines connecting (0,1,0)--(1,1,0)--(1,0,0) [dashed ones] >> are >> not completely visible [also not the one from (1,1,0) to (1,1,1)]. How can I >> make >> them visible even if they lie behind/under the wireframe? I tried to work >> with >> col="transparent" and with alpha=... but neither did work as I expected. >> My goal is to make the small "rectangles" between the wire transparent. >> I also use these plots in posters with a certain gradient-like background >> color >> and so it's a bit annoying that the "rectangles" are filled with white color. > > Yes, that probably needs a new argument; the default computation is a > bit of a hack. You can try the following workaround for now: > > wireframe(z~x*y, pts=pts, aspect=1, scales=list(col=1, arrows=FALSE), > zlim=c(0,1), > par.settings = list(background = list(col = "#ffffff11")), ## <- NEW > panel.3d.wireframe = function(x,y,z,xlim,ylim,zlim,xlim.scaled, > ylim.scaled,zlim.scaled,pts,...){ > panel.3dwire(x=x, y=y, z=z, xlim=xlim, ylim=ylim, zlim=zlim, > xlim.scaled=xlim.scaled, ylim.scaled=ylim.scaled, > zlim.scaled=zlim.scaled, ...) > panel.3dscatter(x=pts[,1], y=pts[,2], z=pts[,3], > xlim=xlim, ylim=ylim, zlim=zlim, > xlim.scaled=xlim.scaled, ylim.scaled=ylim.scaled, > zlim.scaled=zlim.scaled, type="p", col=c(2,3), > cex=1.8, pch=c(3,4), .scale=TRUE, ...) > }) > > col = "#ffffff00" instead will give you full transparency (but > "transparent" will not work), and col = "#ffffff77" will be less > transparent and so on. > > -Deepayan ______________________________________________ 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.