0

I am using plot_surface to create the following graph

    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,
        linewidth=0, antialiased=True, shade=False)

enter image description here

I want to be able to add in some indication of where the z-axis zero-plane intersects the surface. That is every point on the surface which is Am3+Ae3 = 0 or nearest Am3+Ae3 = 0.

Is there some function that will do this in matplotlib, or perhaps some way to make cmap show a very defined black around that zero value?

Thanks for any help.

T May
  • 466
  • 1
  • 8
  • 18

1 Answers1

2

You have hit a limitation of matplotlib, it draws in layers so you can't automatically have intersections of surfaces in 3D (yet). You can fake it by hand (see How to draw intersecting planes? ) or use mayavi from enthought (which is openGL based and does 'real' 3D rendering)

You can definitely do this with color map, but requires a bit of work (see stacking colormaps ).

Community
  • 1
  • 1
tacaswell
  • 84,579
  • 22
  • 210
  • 199