Hello All,

I have a scalar function (a potential) defined on a 3-dimensional

cartesian space V(x,y,z) and an arbitrary surface (a boundary) set by

the function f(x,y,z)=a. I would like to paint the value of V(x,y,z)

on the surface defined by f in the (x,y,z) domain.

Specifically I was thinking of rewriting f in the form of Z=f(X,Y)

and plot it with surface plot

plot_surface(X, Y, Z, cmap=cm.coolwarm)

This give me my boundary surface but its color is set by Z while I

would like if to be set by my other function V evaluated on the

surface.

Please let me know if any of you have a good suggestion. Thank you,

– Philippe.

I just sent a similar question in last week. This is basically the functionality I'm looking for too. In MATLAB this can be done with the trisurf plotting function. Matplotlib has a plot_trisurf method for an axis provided by loading the mplot3d module, but as far as I can tell, you can either give a surface a constant color or you can choose a cmap and have it color the surface according to the Z values of surface points.

If anyone knows of a way to make Philippe's plot with Matplotlib, I'd love to know.

Byron Boulton

## ···

From: Philippe Piot [mailto:philippe.piot@…287…]

Sent: Saturday, January 17, 2015 1:25 PM

To: matplotlib-users@lists.sourceforge.net

Subject: [Matplotlib-users] Display a scalar as color over a surface

Hello All,

I have a scalar function (a potential) defined on a 3-dimensional

cartesian space V(x,y,z) and an arbitrary surface (a boundary) set by

the function f(x,y,z)=a. I would like to paint the value of V(x,y,z)

on the surface defined by f in the (x,y,z) domain.

Specifically I was thinking of rewriting f in the form of Z=f(X,Y)

and plot it with surface plot

plot_surface(X, Y, Z, cmap=cm.coolwarm)

This give me my boundary surface but its color is set by Z while I

would like if to be set by my other function V evaluated on the

surface.

Please let me know if any of you have a good suggestion. Thank you,

-- Philippe.