# level/contour curves in 3D

 0 Is there a way to graph level curves of a function $f(x,y)$ in 3D at their respective heights? (Much like contourplot3d in Maple.) Thanks. To make things clearer: what I'd like to see is a 3D plot with level curves (not surfaces). We start with a function of 2 variables (not three) and I'd like to see the 'exploded' contour plot so that the level curves are graphed at their respective z-altitudes. Makes sense? asked Aug 01 '12 heptadecagon 3 ● 1 ● 4

 3 Below is a bit of a hack, but I think it does what you want. var('x,y,z') f(x,y)=x^2+3*y^2 levels=[1,2,3,4] epsilon=0.1 p=plot3d(f(x,y),(x,-2,2),(y,-2,2),color='khaki',opacity=0.7) for h in levels: p+=implicit_plot3d(f(x,y)==h,(x,-2,2),(y,-2,2),(z,h,h+epsilon)) show(p)  posted Aug 02 '12 calc314 2235 ● 7 ● 25 ● 62 1Small variation:var('x,y,z')sum([implicit_plot3d(x^2-y^2==level,(x,-4,4),(y,-4,4),(z,level,level+0.1)) for level in srange(-10,10,2)])achrzesz (Aug 03 '12)Cool use of srange!calc314 (Aug 03 '12)Thanks for the solution, though, like you said, it's a little bit of a hack.heptadecagon (Aug 07 '12)
 0 You can use contour_plot and can specify the heights you want as follows. var('x,y') contour_plot(x^3+x*y,(x,-4,4),(y,-4,4),contours=[0,1,2,3])  For a 3D version, see 3D contours. posted Aug 01 '12 calc314 2235 ● 7 ● 25 ● 62 I think he means can one do a 3d plot in the same way?kcrisman (Aug 01 '12)Good point! I'll edit my answer.calc314 (Aug 02 '12)Indeed, what I'd like to see is a 3D plot with level curves (not surfaces). We start with a function of 2 variables (not three) and I'd like to see the 'exploded' contour plot so that the level curves are graphed at their respective $z$-altitudes. Makes sense?heptadecagon (Aug 02 '12)Look at the next answerachrzesz (Aug 02 '12)
 0 One can use gnuplot (in Sage)  sage: gnuplot_console() #and then set contour surface set cntrparam levels incremental -10,2,10 unset surface set isosamples 100,100 splot [-4:4] [-4:4] [-11:11] x**2-y**2  posted Aug 02 '12 achrzesz 1711 ● 4 ● 17 ● 38 Thanks, that looks interesting but I would rather avoid having to use gnuplot.heptadecagon (Aug 02 '12)

[hide preview]