[R] Creating a "simple" Radar/Spider Plot from Statgraphics

Jim Lemon jim at bitwrit.com.au
Thu Jun 5 12:17:23 CEST 2008


Albert Crosby wrote:
> I'm new to R - and trying to create a plot similiar to the spider plot at 
> http://www.statgraphics.com/eda.htm#radar .  
> 
> I can't figure out several things... most of which I would think would be 
> straightforward....
> 
> How can I change the lines for each series plotted instead of creating a 
> filled area?
> 
> How can I get the labels for each of the radial axes at the outside of the 
> plot instead of on a small circle in the middle?
> 
> Is there an easy way to get a legend like the sample plot?
> 
> Here's my attempt so far, using the USJudgeRating dataset... I'm sure that 
> there's something simple that I'm missing....
> 
>  stars(USJudgeRatings[1:2,1:9],locations = 0:1, scale=FALSE, 
> draw.segments=FALSE,
>          col.segments=1:5,col.stars=0,key.loc=0:1,
>           main="Radar/Spider Plot\nSee 
> http://www.statgraphics.com/eda.htm#radar",full=TRUE)
> 
> What I really want to do is plot a dataset like this one:
> 
> Year     Below   Basic   Proficient   Advanced
> 2005     10      25      30           35
> 2006     8       21      41           30
> 2007     15      24      48           14
> 2008     14      19      42           25
> 
> and get a graphic with 4 superimposed stars of different colors superimposed 
> showing the shape of the distribution for each year.  The data is 
> percentsges of students scoring in each category, summing to 100.  There are 
> actually scores for Literacy and Math, so I might display 8 radii instead of 
> the 4 above. And the dataset/graph would be repeated for comparing various 
> subpopulations.
> 
> Any pointers would be welcomed!
> 
Hi Albert,
Try this and it may be what you want:

# this just gets your data
radplot<-read.table("../radarplot.dat",header=TRUE)
library(plotrix)
radial.plot(radplot[,2:5],label.pos=c(0,pi/2,pi,3*pi/2),rp.type="p",
  labels=c("Below","Basic","Proficient","Advanced"),main="Performance")
# let the legend extend beyond the plot
par(xpd=TRUE)
legend(-50,50,radplot[,1],col=1:4,lty=rep(1,4))
par(xpd=FALSE)

Jim



More information about the R-help mailing list