input graph defaultfont:="ptmr8r"; warningcheck:=0; beginfig(1) numeric r,last; path c,w; r:=5; c:=fullcircle scaled 2r; last:=0.0; def wedge (expr lang,value,perc) = numeric current,n,half,xoff,yoff; picture p; n:=perc*3.6; current:=last+n; half:=last+(n/2); w:=buildcycle((0,0)--(2r,0) rotated last, c, (2r,0)--(0,0) rotated current); gfill w withcolor (0.8-(perc/100),0.8-(perc/100),0.8-(perc/100)); gdraw w; if perc > 5: p = lang infont defaultfont scaled defaultscale; glabel(image(unfill bbox p; draw p), 3/4r*dir(half)); fi; last:=current; enddef; draw begingraph(3in,3in); defaultscale:=0.7; gdata ("langs.dat",c, wedge(c1, (scantokens c2), (scantokens c3));); autogrid(,); frame withcolor white; endgraph; endfig; end;