On 2010-04-06 7:28, Daniel Alcock wrote:> First, apologies for no example data but I don't think it's needed
in
> this case,
>
> Q: Can (and if so how ) the line end style be changed for 'cloud'
plots?
>
> I've tried par(lend=2), trellis.par.set(add.line = list(lend=2)) and
> much googling but to no avail
>
You can't use 'lend' because it's not an add.line component.
What
you need is the grid graphics parameter 'lineend' which is
ultimately used in lsegments().
Here's a crude way to possible achieve what you need.
(I'm still getting to grips with grid graphics.)
This will replace panel.cloud and panel.3dscatter
with very minor modifications.
1. make a copy of panel.3dscatter
You should find, near the end, a call to lsegments() that
ends with:
lwd = lwd[ord])
replace that line with:
lwd = lwd[ord], ...)
This will permit passing grid graphics parameters to gpar() in
lsegments().
(I think that all we really need is for Deepayan to make this
change to panel.3dscatter; I suspect that this was an oversight,
but there may well be good reasons.)
2. Save your copy as mypanel.3dscatter and set its environment to
lattice's namespace:
environment(mypanel.3dscatter) <- environment(xyplot)
3. Make a copy of panel.cloud
Change the default argument for panel.3d.cloud from
"panel.3dscatter" to "mypanel.3dscatter" and save the
modified function to mypanel.cloud and set its environment
as above.
Now you should be able to call cloud:
cloud(z ~ x*y | etc, panel = "mypanel.cloud", lineend =
"square")
Your choice are "round" (default), "butt" and
"square".
-Peter Ehlers
> Thanks in advance
>
> Dan
>
> P.S. the reason for this is that the round end looks bad at lwd=3 or
> more
>
> Daniel Alcock
> Malaria Genetics (T112)
> Wellcome Trust Sanger Institute
> Cambridge
> CB10 1SA
> UK
> +44 (0)1223 834244 ext. 4994
> "The most exciting phrase to hear in science, the one that heralds new
> discoveries, is not Eureka! But rather, "hmm.... that's
funny...." --
> Isaac Asimov
>
>
>
>
--
Peter Ehlers
University of Calgary