Jim Lemon schrieb:
On Wed, 2008-08-20 at 13:36 +0200, Stefan Uhmann wrote:
Dear R-Helpers,

I need the centroid of circular data and (because the function used does not provide the centroid coordinates, or did I miss sth.?) tried it via the indirect way and just computed the cartesian coordinates:

 >>>
library(plotrix)
library(maps)

#generate data
data1<-matrix(c(1.8,1.5,1.2,0.9,0.0,-0.9,-0.6,0.3)+1.2,nrow=1)
#radial plot
radial.plot(data1,labels=paste("Dim",1:8,sep=""),rp.type="s",
main="test",show.grid=TRUE, radial.lim=c(0,3.5), show.centroid=TRUE, clockwise=T)
#compute cartesian coordinates
deg1<-seq(from=0,to=7,by=1)*pi/4
x=(data1)*cos(2*pi-deg1)
y=(data1)*sin(2*pi-deg1)
#print cartesian points (of polygon)
points(x,y,pch=18)
#print cartesian centroid
points(matrix(centroid.polygon(cbind(as.vector(x),as.vector(y))), nrow=1), pch=17)
 >>>

My problem is, that the centroid computed by the radial.plot-function (big unfilled circle) is somewhat different from the one computed 'by hand' using cartesian coordiantes and centroid.polygon (small triangle). I would really appreciate any suggestions how to obtain the correct centroid and what is wrong here.

Hi Stefan,
The radial.plot function just takes the mean of the x and y positions
for the centroid (see line 119). If this is incorrect, I would greatly
appreciate a pointer to the correct function for this so that I can
modify the code.

Jim

Dear Jim,

first of all, great work! The radial.plot function was the best and most flexible one for me and my purposes. I'm not into maths, but to me it appears that the centroid of a polygon is sth. complicated - my only source is wikipedia, btw. - and not just the mean of the x- and y-coordinates. A short glance brought up the result, that various math packs (matlab, maple) have functions to compute the centroid of a polygon. But I have to admit that I can not be of any further help - the formulas found in wikipedia are greek for me. However, it would be great if you could implement the centroid - and maybe even let the function give it back - and just rename the current function to sth. else.

/Stefan

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to