Ask Your Question
0

level/contour curves in 3D

asked 2012-08-01 12:52:54 -0600

heptadecagon gravatar image

updated 2017-01-08 05:09:21 -0600

FrédéricC gravatar image

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?

edit retag flag offensive close merge delete

3 answers

Sort by » oldest newest most voted
3

answered 2012-08-02 14:49:30 -0600

calc314 gravatar image

updated 2012-08-02 15:52:08 -0600

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)

image description

edit flag offensive delete link more

Comments

1

Small 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 gravatar imageachrzesz ( 2012-08-02 19:19:14 -0600 )edit

Cool use of srange!

calc314 gravatar imagecalc314 ( 2012-08-03 04:00:52 -0600 )edit

Thanks for the solution, though, like you said, it's a little bit of a hack.

heptadecagon gravatar imageheptadecagon ( 2012-08-07 11:29:49 -0600 )edit
0

answered 2012-08-01 14:46:19 -0600

calc314 gravatar image

updated 2012-08-02 01:37:06 -0600

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.

edit flag offensive delete link more

Comments

I think he means can one do a 3d plot in the same way?

kcrisman gravatar imagekcrisman ( 2012-08-01 15:35:22 -0600 )edit

Good point! I'll edit my answer.

calc314 gravatar imagecalc314 ( 2012-08-02 01:35:58 -0600 )edit

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 gravatar imageheptadecagon ( 2012-08-02 11:08:52 -0600 )edit

Look at the next answer

achrzesz gravatar imageachrzesz ( 2012-08-02 11:20:35 -0600 )edit
0

answered 2012-08-02 09:12:02 -0600

achrzesz gravatar image

updated 2012-08-02 09:45:56 -0600

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
edit flag offensive delete link more

Comments

Thanks, that looks interesting but I would rather avoid having to use gnuplot.

heptadecagon gravatar imageheptadecagon ( 2012-08-02 11:40:58 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2012-08-01 12:52:54 -0600

Seen: 1,513 times

Last updated: Aug 02 '12