sil*_*thu 8 python plot numpy matplotlib
我正在尝试使用matplotlib绘制一些曲线.
但是,由于这些曲线从视口彼此重叠.
所以只有z顺序在这里无法帮助.
我想知道是否有一个函数像matplotlib中的深度缓冲区一样工作.
我正在密谋这样的事情.
红线不应总是在3D空间的顶部.

HYR*_*YRY 15
我认为在matplotlib中很难做到这一点,因为它是一个具有3D绘图能力的2D绘图库.我推荐一些真正的3D绘图库,比如visvis,mayavi,vpython.例如,在visvis中,您可以创建一条3D曲线,如:

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()
Run Code Online (Sandbox Code Playgroud)
Mayavi的:

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()
Run Code Online (Sandbox Code Playgroud)