Ask Your Question

# Coloring surfaces in plot3d

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 close merge delete

## 2 Answers

Sort by » oldest newest most voted

Something like that is now possible as follows.

var('x,y,z')
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.

more

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!

more

## Comments

Niles, your ticket http://trac.sagemath.org/sage_trac/ticket/12212 might be relevant here.

( 2013-02-24 20:30:30 +0200 )edit

## Your Answer

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

Add Answer

## Stats

Asked: 2012-09-12 18:16:12 +0200

Seen: 1,210 times

Last updated: Jan 10 '17