import palette; import graph3; size3(8cm,8cm,3cm,IgnoreAspect); size(8cm,0); triple camera=(36,32,23), up=(-0.03,-0.015,0.015), target=(0.066,-0.49,-0.26); currentprojection=orthographic(camera,up,target); limits((-5,-5,-1),(5,5,1)); xaxis3(Label("$x$",MidPoint,align=Y-Z), Bounds(), OutTicks(scale(.7)*Label(),Step=2,step=.2,pTick=black,ptick=gray), p=blue); yaxis3(Label("$y$",MidPoint,align=X-Z), Bounds(), OutTicks(scale(.7)*Label(),Step=2,step=.2,pTick=black,ptick=gray), p=blue); zaxis3(Label("$z$",MidPoint,align=X-Y), Bounds(), OutTicks, p=red); real f(pair z) {return sin((abs(z))^2/3);} surface s=surface(f,(-5,-5),(5,5),50,50); s.colors(palette(s.map(zpart),Rainbow())); draw(s,meshpen=blue);