在3D空间中投射曲线

时间:2016-11-26 07:40:38

标签: python matplotlib 3d projection

我正在使用三个向量X,Y和Z在3D空间中绘制曲线。

如何将曲线投影绘制到XOY,XOZ,YOZ平面上?

import matplotlib.pylab as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = [4, 2, 7, 4]
Y = [7, 4, 9, 6]
Z = [9, 6, 10, 3]
ax.plot(X, Y, Z, 'b-', linewidth=4, label='parametric curve')
plt.show()

1 个答案:

答案 0 :(得分:0)

由于您只是在3D空间中绘制点(意味着即使您将其称为参数化,但您的曲线不是参数化的),您也可以获得"投影"只需将相应的尺寸设置为零。

例如,要在XoY平面上绘图,您忽略了Z组件并使用

zeros = [0,0,0,0]
plt.plot(X,Y,zeros)

总的来说,这看起来像是

import matplotlib.pylab as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
X = [4, 2, 7, 4]
Y = [7, 4, 9, 6]
Z = [9, 6, 10, 3]
ax.plot(X, Y, Z, 'b-', linewidth=4, label='curve')

null = [0]*len(Z)
ax.plot(null, Y, Z)
ax.plot(X,null, Z)
ax.plot(X, Y, null)

plt.show()

enter image description here