我正在使用三个向量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()
答案 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()