[R] drawing ellipses

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Wed Jun 19 17:10:57 CEST 2002


Yves,

> I now want to trace some ellipses to emphasize groups of data. I found how
> to trace circles with 'symbols()', but no ellipse. I'm planning on writing
> my own function based on 'polygon()' and the ellipse equation. Does anybody
> already have done similar work or have another solution ?
> 

I believe the ellipse library will do this for you. Try

> install.packages("ellipse")

Otherwise, I have a function which will do something similar. I wrote it
ages ago but it still works fine:

# begin ellipse
ellipse <- function(x,y,
                    width,height=width,theta=2*pi,
                    npoints=100,plot=T) {
  # x = x coordinate of center
  # y = y coordinate of center
  # width = length of major axis
  # height = length of minor axis
  # theta = rotation
  # npoints = number of points to send to polygon
  # plot = if TRUE, add to current device
  #      = if FALSE, return list of components
  a <- width/2
  b <- height/2
  xcoord <- seq(-a,a,length=npoints)
  ycoord.neg <- sqrt(b^2*(1-(xcoord)^2/a^2))
  ycoord.pos <- -sqrt(b^2*(1-(xcoord)^2/a^2))
  xx <- c(xcoord,xcoord[npoints:1])
  yy <- c(ycoord.neg,ycoord.pos)
  x.theta <- xx*cos(2*pi-theta)+yy*sin(2*pi-theta)+x
  y.theta <- yy*cos(2*pi-theta)-xx*sin(2*pi-theta)+y
  if(plot)
    invisible(polygon(x.theta,y.theta,density=0))
  else
    invisible(list(coords=data.frame(x=x.theta,y=y.theta),
                   center=c(x,y),
                   theta=theta))
}
# end ellipse

Regards,
Sundar

-- 
Sundar Dorai-Raj, Ph.D.     
Statistical Methods Engineer
PDF Solutions, Inc.
Richardson TX
(972) 889-3085 x216
(214) 392-7619 cell
sundar.dorai-raj at pdf.com
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list