[R] area of ellipses (car)

sam stein sam at mega.net
Thu Jun 18 06:44:22 CEST 2009


hi,

i am using this script on our webserver to plot data / draw ellipses  
for a flex movie...

would like to add the areas of the ellipses to another legend just  
like the means for
the distance.

the data looks like:  x (dispersion),   y (distance), Club (name of  
the club for grouping)

thanks, sam


## usage: Rscript nikeScatter.R infile outfile level1 level2 minX maxX  
minY maxY
## load the library
    library(car)

## get the args
    args = commandArgs(TRUE);

## get the data format is: x, y, group
    shotData <- read.table(args[1],
                          sep = ",",
                          header=T)

## setup the pdf file name
    pdf(file = args[2])

## do the plot
    scatterplot(y ~ x | Club, data=shotData,
          ellipse = TRUE,
                levels = c(as.numeric(args[3]), as.numeric(args[4])),
                robust = TRUE,
                boxplots = "",
          xlab = "Dispersion",
          ylab = "Distance",
          xlim = c(as.numeric(args[5]), as.numeric(args[6])),
          ylim = c(as.numeric(args[7]), as.numeric(args[8])),
          smooth = FALSE,
          reg.line = FALSE,
          legend.plot = FALSE)

## do the custom legends

n.groups <- length(levels(shotData$Club))
col=rep(palette(), length.out=n.groups + 1)
pch=1:n.groups
usr <- par('usr')
distance <- sapply(levels(shotData$Club),function(x) 
{mean(shotData[shotData$Club==x,"y"])})
dispersion <- sapply(levels(shotData$Club),function(x) 
{mean(shotData[shotData$Club==x,"x"])})

legend(usr[1] + 7, usr[4], legend=levels(shotData$Club), col=col[2: 
(n.groups+1)], pch=pch, pt.cex=.85, cex=.85)
legend("topright", legend=format(distance, digits=1, nsmall=3),  
col=col[2:(n.groups+1)], pch=pch, pt.cex=.85, cex=.85)




More information about the R-help mailing list