The rgl package has an rgl.postscript function that should do that for
you (I think there was a bug discovered and fixed recently, so make sure
to get the latest version).
--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
[EMAIL PROTECTED]
(801) 408-8111
________________________________
From: Roland Rau [mailto:[EMAIL PROTECTED]
Sent: Friday, February 09, 2007 12:46 PM
To: Duncan Murdoch
Cc: Greg Snow; r-help
Subject: Re: [R] two perspective plots in in plot
Thanks Duncan and Greg.
My current solution is to use the rgl-package.
Is there an easy way to obtain a screenshot in eps- or
pdf-Format from such an rgl-window?
I saw the rgl.snapshot function but it does not provide this
format.
So far, I take a snapshot, save it as jpeg and convert it to eps
via jpeg2ps.exe
Maybe not the most elegant way but the results are better than I
anticipated.
Thanks,
Roland
On 2/9/07, Duncan Murdoch <[EMAIL PROTECTED]> wrote:
On 2/9/2007 1:11 PM, Greg Snow wrote:
> Probably the easiest way is to use the "wireframe"
function in the
> lattice package. The second example in the help shows
2 surfaces (you
> do need to combine the data into a single data frame).
>
> If you really want to use the "persp" function, then
you could create
> the first plot, then call "par(new=TRUE)" and then do
the 2nd plot, but
> that would take a lot of thinking to get the axes and
scales to line up
> properly and make it look good.
Another alternative is to use the persp3d function and
surface3d
functions in the rgl package. It would be quite tricky
to get persp to
handle hidden surfaces properly, whereas rgl will just
do it (as long as
neither is transparent. Transparency is hard.)
For example, after running example(persp) so that x, y,
and z contain
values that were just used in
persp(x, y, z, theta = 135, phi = 30, col = "green3",
scale = FALSE,
ltheta = -120, shade = 0.75, border = NA, box =
FALSE)
you can run
library(rgl)
persp3d(x,y,z, col="green3", aspect="iso", axes=FALSE,
box=FALSE,
xlab="", ylab="", zlab="")
persp3d(x,y,(z + mean(z))/2, col="red", add=TRUE)
and then rotate the surfaces to the desired viewing
angle.
Duncan Murdoch
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.