我正在尝试使用matplotlib绘制一些曲线。
但是,由于这些曲线在视口(viewport)中相互重叠。
因此,仅z顺序在这里无济于事。
我想知道是否有功能像matplotlib中的深度缓冲区那样工作。
我正在画这样的东西。
红线不应该总是在3D空间中位于顶部。
最佳答案
我认为在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()
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()
关于python - matplotlib中是否有类似深度缓冲区的内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12193709/