require(plotrix) names<-c("A","B","C","D","E","F","G","H","I","J") p<-c(90,84.2,91.6,80.6,64.2,76.7,56.9,73.5,17.4,67.7) std<-c(80,95,80,90,90,80,95,90,70,75) pi <- 4*(4*atan(1/5) - atan(1/239)) N<-length(names) gap <- std-p rad <- rep(NA,N) rad[gap<=0] <- 4 + 29 * (1 - abs(gap[gap<=0])/(100-std[gap<=0])) rad[gap>0] <- 33 + 67 * (gap[gap>0] / std[gap>0]) jpeg("target.jpg",width=1200,height=900,res=100, quality=100) plot(0,type="n",asp=1,xlim=c(-130,130),ylim=c(-130,130),axes=FALSE,xlab="",ylab="",main="Chart Title",cex.main=2) draw.circle(0,0,100,col="darkred",border="darkred") draw.circle(0,0,66,col="darkorange",border="orange") draw.circle(0,0,33,col="darkgreen",border="darkgreen") for(i in 1:N) { segments(0,0,100*sin((i-1)*2*pi/(N)),100*cos((i-1)*6.28/N),col="white") x<-rad[i]*sin((i-1)*2*pi/N) y<-rad[i]*cos((i-1)*2*pi/N) points(x,y,pch=19,col="white",cex=2) x<-120*sin((i-1)*2*pi/N) y<-120*cos((i-1)*2*pi/N) text(x,y,paste(names[i],"\n",p[i],"%",sep=""),col="black") } dev.off()