On Thu, Oct 9, 2008 at 8:59 AM, Todd Remund <tkremund98 at hotmail.com>
wrote:>
> I'm trying to create a 3D plot using wireframe with certain parts
removed. I would like to get rid of the part of the outer cube that crosses
over the plot leaving the back two walls and the axes. It would also be useful
to put lines in the plot separate from the wireframe call. I've looked
through the documentation and have not been able to find such a request. Here
is my code attempting to rid the wireframe plot of some of the cube lines.
>
> trellis.par.set('axis.line',
list(col='transparent'))trellis.par.set('box.3d',
list(col='transparent'))
> wireframe(Data ~ Freqq*Time, scales=list(arrows=FALSE, cex=0.75,
col='black', tck=1), screen=list(z=-10, x=-70, y=0), xlim=c(0,
max(Freqq)), zoom=0.85, col='darkgrey', aspect=c(1.75,.65),
xlab=list(label='Frequency (Hz)'), ylab='Time (Sec)',
perspective=FALSE, zlab=list(label=expression(lb[f]), just=-1), par.box =
list(col=c(1,1,NA,1,1,NA,1,1,1)))
> I found that the par.box option controls multiple lines in the plot not
just one at a time. I have made some attempts at adding lines to the plot to
put profile plots on the 'back walls', but don't know where to
start. Thank you in advance.
>
Using 'par.box' will not get you far, for a couple of reasons. For one
thing, it does not allow separate parameters for different boundary
types. This is a shortcoming that should be fixed; however, that would
not help you because the wireframe model divides the edges slightly
differently: into those that are "behind" the plot (i.e., those that
may be obscured by the surface), and those that are "visible". The
"visible" ones includes the ones you want to omit, but also some you
want to keep.
The only reasonable approach I can think of is to make the box
transparent, and then draw the relevant lines yourself in a panel
function. This typically involves supplying a 'panel.3d.wireframe'
argument to wireframe; for an example, see
http://lmdvr.r-forge.r-project.org/figures/figures.html?chapter=13;figure=13_07
There are some relevant details in ?wireframe.
-Deepayan