¿Hay algo así como un buffer de profundidad en matplotlib?

Estoy tratando de trazar algunas curvas con matplotlib.
Pero, ya que estas curvas se superponen entre sí desde la ventana gráfica.
Así que solo z-order no puede ayudar aquí.

Me pregunto si hay una función que funcione como un buffer de profundidad en matplotlib.
Estoy ttwigndo algo como esto.
Y la línea roja no debería estar siempre arriba en el espacio 3D.

Creo que es difícil hacer esas cosas en matplotlib, ya que es una biblioteca de gráficos 2D con cierta capacidad de gráficos 3D. Recomiendo algunas bibliotecas de gráficos en 3D reales, como visvis, mayavi, vpython. Por ejemplo, en visvis, puede crear una curva 3D como:

introduzca la descripción de la imagen aquí

import numpy as np import visvis as vv app = 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.0 vv.plot(x, y, z, lw=10) angle += np.pi*2/3.0 x = np.sin(angle) y = np.cos(angle) z = angle / 6.0 - 0.5 vv.plot(x, y, z, lc ="r", lw=10) app.Run() 

mayavi

introduzca la descripción de la imagen aquí

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

Podría intentar usar la función fill_between para colorear las regiones manualmente, tal vez. Vea el ejemplo de los caminantes al azar:

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

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