Is there something like a depth buffer in matplotlib? Is there something like a depth buffer in matplotlib? numpy numpy

Is there something like a depth buffer in matplotlib?


I think it's difficult to do such things in matplotlib, since it's a 2D plot library with some 3D plot ability. I recommend some real 3D plot library, such as visvis, mayavi, vpython. For example, in visvis, you can create a 3D curve like:

enter image description here

import numpy as npimport visvis as vvapp = vv.use()f = vv.clf()a = vv.cla()angle = np.linspace(0, 6*np.pi, 1000)x = np.sin(angle)y = np.cos(angle)z = angle / 6.0vv.plot(x, y, z, lw=10)angle += np.pi*2/3.0x = np.sin(angle)y = np.cos(angle)z = angle / 6.0 - 0.5vv.plot(x, y, z, lc ="r", lw=10)app.Run()

mayavi:

enter image description here

import numpy as npfrom mayavi import mlabangle = np.linspace(0, 6*np.pi, 1000)x = np.sin(angle)y = np.cos(angle)z = angle / 6.0mlab.plot3d(x, y, z, color=(1,0,0), tube_radius=0.1)angle += np.pi*2/3.0x = np.sin(angle)y = np.cos(angle)z = angle / 6.0 - 0.5mlab.plot3d(x, y, z, color=(0,0,1), tube_radius=0.1)mlab.axes()mlab.show()


You could try to use the fill_between function to color the regions manually perhaps. Seethe random walkers example:

http://matplotlib.sourceforge.net/users/recipes.html

http://matplotlib.sourceforge.net/users/recipes-6.py