vardef f(expr x) = (x) enddef; vardef gx(expr x) = (x**2) enddef; ux := 1cm; uy := 1cm; beginfig(1) numeric xmin, xmax, ymin, ymax; xmin := -3; xmax := 6; ymin := -3; ymax := 6; % draw axes drawarrow (xmin,0)*ux -- (xmax+1/2,0)*ux; drawarrow (0,ymin)*uy -- (0,ymax+1/10)*uy; for i=xmin upto xmax: draw (i,-0.05)*ux--(i,0.05)*ux; endfor; for i=ymin upto ymax: draw (-0.05,i)*uy--(0.05,i)*uy; endfor; xinc := 0.1; path pts_f; pts_f := (xmin*ux,f(xmin)*uy) for x=xmin+xinc step xinc until xmax: .. (x*ux,f(x)*uy) endfor; draw pts_f withpen pencircle scaled 2; xinc := 0.1; path pts_gx; pts_gx := (xmin*ux,gx(xmin)*uy) for x=xmin+xinc step xinc until xmax: .. (x*ux,gx(x)*uy) endfor; draw pts_gx withpen pencircle scaled 2; endfig; end;