% --- start of displayed preamble in the book --- input graph 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,0.8-(perc/100),0); 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; % --- end of displayed preamble in the book --- % graphic converted to gray in book using 'color2gray' defaultfont:="ptmr8r"; warningcheck:=0; beginfig(1) draw begingraph(3in,3in); defaultscale:=0.7; gdata ("langs.dat",c, wedge(c1, (scantokens c2), (scantokens c3));); autogrid(,); frame withcolor white; endgraph scaled 0.7; endfig; end;