Drawing a radar-like diagram. Text can be added with the function putText; the legend is written next to the data sector.
\documentclass[border=10pt]{standalone} \usepackage[inline]{asymptote} \begin{asydef} struct RadarPlot{ real[] data; string[] Legend; pen[] Pens; pen gridPen; pen axisPen; pen labelPen; pen legendPen; int n,m; real pieAngle; int maxX; int maxY; real step; real Step; pair O=(0,0); void drawSectors(){ guide g; for(int i=0;i270){ label(t*Legend[i],v,unit(v),legendPen); }else{ label(rotate(a-180)*Legend[i],v,unit(v),legendPen); } } } void draw(){ drawGrid(); drawSectors(); drawAxes(); drawLabels(); drawLegend(); } void putText(string s, real x, real y, pair pos=O, pen p=currentpen){ label(s,rotate(x*pieAngle)*(y,0),pos,p); } void operator init(real[] data, string[] Legend, pen[] Pens ,int maxX=2data.length ,int maxY=(int)max(data)+1 ,pen gridPen=rgb(0.812,0.8,0.776) ,pen axisPen=darkblue ,pen labelPen=deepblue ,pen legendPen=deepgreen ,real step=1 ,real Step=2step ){ this.data=copy(data); this.Pens=copy(Pens); this.Legend=copy(Legend); this.n=data.length; this.m=Pens.length; this.pieAngle=360/n; this.maxX=maxX; this.maxY=maxY; this.gridPen=gridPen; this.axisPen=axisPen; this.labelPen=labelPen; this.legendPen=legendPen; this.step=step; this.Step=Step; } }; \end{asydef} \usepackage{lmodern} \begin{document} \begin{asy} settings.outformat="pdf"; size(300); texpreamble("\renewcommand{\familydefault}{\sfdefault}"); real[] data={ 5,5,4,5,5,4,4,5,6,5,5,4,}; pen op=opacity(0.8); pen[] Pens={ op+rgb(0,0.91,0.769), op+rgb(0.298,0.835,0.549), op+rgb(0.365,0.906,0.408), op+rgb(0.973,0.965,0.333), op+rgb(1,0.812,0.298), op+rgb(1,0.463,0.302), op+rgb(1,0.318,0.447), op+rgb(1,0.322,0.749), op+rgb(0.875,0.337,0.91), op+rgb(0.702,0.349,0.914), op+rgb(0.294,0.482,0.922), op+rgb(0,0.804,0.929), }; string[] Legend={ "set A","set B","set C","set D","set E","set F","set G", "set H","set I","set J","set K","set L",}; RadarPlot rp=RadarPlot(data,Legend,Pens,maxY=9,Step=3); rp.draw(); rp.putText("Test A",4.5,10); rp.putText("Test B",9 , 8,W); \end{asy} \end{document}
Source: TeX.SE