Python 如何在不使用“plot3d\u Parameteric\u line”的情况下绘制参数曲线`

Python 如何在不使用“plot3d\u Parameteric\u line”的情况下绘制参数曲线`,python,matplotlib,plot,sympy,Python,Matplotlib,Plot,Sympy,其想法是绘制曲线:C(t)=(1+cos(t))i+(1+sin(t))j+(1-sin(t)-cos(t))k。按照绘图模块上的说明,可以使用plot3d\u parametric\u line: 方法1: %matplotlib notebook from sympy import cos, sin from sympy.plotting import plot3d_parametric_line t = sp.symbols('t',real=True) plot3d_parametric

其想法是绘制曲线:
C(t)=(1+cos(t))i+(1+sin(t))j+(1-sin(t)-cos(t))k
。按照绘图模块上的说明,可以使用
plot3d\u parametric\u line

方法1:

%matplotlib notebook
from sympy import cos, sin
from sympy.plotting import plot3d_parametric_line
t = sp.symbols('t',real=True)
plot3d_parametric_line(1 + cos(t), 1 + sin(t), 1-sin(t)-cos(t), (t, 0, 2*sp.pi))

虽然这是一种有效的方法,但有另一种方法可以打印它,而不使用
plot3d\u parametric\u line
而是
ax.plot
。我所尝试的:

方法2:

fig = plt.figure(figsize=(8, 6))
ax = fig.gca(projection='3d')
ax.set_xlim([-0.15, 2.25])
ax.set_ylim([-0.15, 2.25])
ax.set_zlim([-0.75, 2.50])

ax.plot(1+sp.cos(t),1+sp.sin(t),1-sp.sin(t)-sp.cos(t))
plt.show()
但是
TypeError:Add类型的对象没有len()

我如何修正它,从而得到与方法1相同的曲线


谢谢

在定义线性NumPy网格并计算x、y、z变量后,您可以从
matplotlib
使用3d打印

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.gca(projection='3d')

t = np.linspace(0, 2*np.pi, 100)
x = 1 + np.cos(t)
y = 1 + np.sin(t)
z = 1 - np.sin(t) - np.cos(t)

ax.plot(x, y, z)

plt.show()