[R] circular reference lines in splom
Peter Ehlers
ehlers at ucalgary.ca
Thu Jan 20 17:13:01 CET 2011
On 2011-01-19 20:15, Max Kuhn wrote:
> Hello everyone,
>
> I'm stumped. I'd like to create a scatterplot matrix with circular
> reference lines. Here is an example in 2d:
>
> library(ellipse)
>
> set.seed(1)
> dat<- matrix(rnorm(300), ncol = 3)
> colnames(dat)<- c("X1", "X2", "X3")
> dat<- as.data.frame(dat)
> grps<- factor(rep(letters[1:4], 25))
>
> panel.circ<- function(x, y, ...)
> {
> circ1<- ellipse(diag(rep(1, 2)), t = 1)
> panel.xyplot(circ1[,1], circ1[,2],
> type = "l",
> lty = 2)
> circ2<- ellipse(diag(rep(1, 2)), t = 2)
> panel.xyplot(circ2[,1], circ2[,2],
> type = "l",
> lty = 2)
> panel.xyplot(x, y)
> }
>
> xyplot(X2 ~ X1, data = dat,
> panel = panel.circ,
> aspect = 1)
>
> I'd like to to the sample with splom, but with groups.
>
> My latest attempt:
>
> panel.circ2<- function(x, y, groups, ...)
> {
> circ1<- ellipse(diag(rep(1, 2)), t = 1)
> panel.xyplot(circ1[,1], circ1[,2],
> type = "l",
> lty = 2)
> circ2<- ellipse(diag(rep(1, 2)), t = 2)
> panel.xyplot(circ2[,1], circ2[,2],
> type = "l",
> lty = 2)
> panel.xyplot(x, y, type = "p", groups)
> }
>
>
>
> splom(~dat,
> panel = panel.superpose,
> panel.groups = panel.circ2)
>
> produces nothing but warnings:
>
>> warnings()
> Warning messages:
> 1: In is.na(x) : is.na() applied to non-(list or vector) of type 'NULL'
>
> It does not appear to me that panel.circ2 is even being called.
>
> Thanks,
>
> Max
I don't see a function panel.groups() in lattice.
Does this do what you want or am I missing the point:
splom(~dat|grps, panel = panel.circ2)
Peter Ehlers
More information about the R-help
mailing list