On Tue, Nov 3, 2009 at 3:57 PM, Rolf Turner <r.turner at auckland.ac.nz>
wrote:>
>
> (1) Is there a (simple) way of getting cloud() to do *both*
> type="p" and type="h"? ?I.e. of getting it to plot the
points
> as points *and* drop a perpendicular line to the underlying plane?
Yes, 'type' can be a vector, similar to the behaviour in xyplot():
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris, type
c("p", "h"))
> (2) Is there a way of telling cloud() to drop its lines to the
> floor of the bounding box, rather than to the plane z=0?
> I thought that the "zero.scaled" argument (for panel.3dscatter())
> might be the ticket here, but when I pass this argument to cloud()
> I get an error ``Error using packet 1 formal argument
"zero.scaled"
> matched by multiple actual arguments".
There doesn't seem to be an easy way. (To use 'zero.scaled', you
would
need a custom panel.3d.cloud argument which captures 'zero.scaled' and
replaces it, etc., which is not really what you should need to do.)
Unless you are using arrows=FALSE on the z-axis, you could easily fake
it by increasing the z-values (e.g., z-min(z)).
Longer term, I could add an 'origin' argument to panel.cloud, similar
to what panel.barchart supports. Would that suffice for you? You would
still need to pre-compute the origin, in this case the lower zlim.
-Deepayan