Ask Your Question

Coloring surfaces in plot3d

asked 2012-09-12 11:16:12 -0500

hiho gravatar image

I'm really new with sage, and what I would like is to color a graph from plot3d according to some function (specifically, I would want the hue to vary with the magnitude of the gradient). Is there some way of doing this easily?

edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted

answered 2017-01-10 07:06:20 -0500

FrédéricC gravatar image

Something like that is now possible as follows.

cm = colormaps.winter
f = sin(2*z).function(x,y,z)
implicit_plot3d(x^2-y^2*z == 0,(x,-4,4),(y,-4,4),(z,-4,4), color=(f,cm))

where cm is a chosen colormap among those available. Beware that the coloring function f must takes values between 0 and 1.

edit flag offensive delete link more

answered 2012-09-13 02:43:52 -0500

niles gravatar image

Yes and no. There is basic functionality for colormaps, as described on the question about coloring by z-level. Sage's colormaps come from matplotlib, and you can define your own colormap functions in matplotlib. Here is the documentation for matplotlib colormaps.

But I don't know if Sage's interface to matplotlib has been extended to all the functionality of matplotlib (probably not). Perhaps you'll need to import matplotlib and use it's plotting functionality directly . . .

It should be possible, but may require learning more about matplotlib and how to use it. Good luck!

edit flag offensive delete link more


Niles, your ticket might be relevant here.

kcrisman gravatar imagekcrisman ( 2013-02-24 13:30:30 -0500 )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


Asked: 2012-09-12 11:16:12 -0500

Seen: 456 times

Last updated: Jan 10 '17