[R] lines on persp plot - proper depth ordering
Duncan Murdoch
murdoch.duncan at gmail.com
Sat Apr 21 01:30:21 CEST 2012
On 20/04/2012 2:48 PM, Nate Cermak wrote:
> Hello R-help!
> I am trying to draw series of lines in 3d, and I am not sure how to get the
> depth set up properly - lines that are in front of other lines appear to be
> behind and vice versa. I've been doing this by first generating an empty
> persp plot, then adding lines via the data into trans3d followed by lines
> (this is probably a bad approach, but it was the first one I could get
> working).
The only possibility with persp is for you to draw the ones that need to
be behind first, the ones in front later. Persp can't do it, you have
to. The rgl package can do the sorting, but there are other limitations
in it that you might not find acceptable, particularly in output formats.
Duncan Murdoch
>
> Here is a semi-contrived minimal example of my problem:
>
> ###########################################################
> #line 1
> x1=0:10;
> y1=rep(0,11);
> z1 = rep(5,11);
>
> #line 2
> x2=y2=z2 = 0:10
>
> # make empty persp plot (awful hack to make a surface out of view)
> pmat = persp(x=c(-10.1,-10), y=c(-10.1,-10), z=matrix(c(0,.1,0,.1),
> nrow=2),
> xlim=c(0,10), ylim=c(0,10), zlim=c(0,10), xlab='x', ylab='y', zlab='z')
>
> # now draw the lines
> lines( trans3d(x1, y1, z1,pmat), col="grey", lwd=3)
> lines( trans3d(x2, y2, z2,pmat), col="red", lwd=3)
> #############################################################
>
> Ideally, the red line would occur behind the grey line (and in this
> example, I could very simply switch the order and fix the problem), but I'm
> not sure how to make this happen in the general case. I have a dataset of
> more like a hundred lines, many of which sort of corkscrew around one
> another. How can I ensure that the plotting of the lines respects the
> depth? Is there a better function I could be using for this? I tried plot3d
> in rgl and scatter3d in Rcmdr, but both crash R on my system.
>
> Thanks so much in advance!
>
> -nate cermak
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list