Python 使用Symphy在3D中绘制曲线

Python 使用Symphy在3D中绘制曲线,python,plot,sympy,curve,mplot3d,Python,Plot,Sympy,Curve,Mplot3d,如何使用Symphy绘制以下3D曲线(作为示例)?我知道只需为t创建一个数组并在Matplotlib中执行此操作,但我并不想绘制此曲线,而是想学习如何以符号方式定义和绘制曲线 α(t)=(cos(t),sin(t),t) 我尝试过以各种方式使用plot方法,但这只会导致三条单独的1D曲线,或者出现错误。我从未尝试过在sympy中进行绘图 我想更多的人会有matplotlib的经验 lambdify()是符号表达式和正则函数之间的接口 from sympy import * from sympy.

如何使用Symphy绘制以下3D曲线(作为示例)?我知道只需为t创建一个数组并在Matplotlib中执行此操作,但我并不想绘制此曲线,而是想学习如何以符号方式定义和绘制曲线

α(t)=(cos(t),sin(t),t)


我尝试过以各种方式使用plot方法,但这只会导致三条单独的1D曲线,或者出现错误。

我从未尝试过在sympy中进行绘图

我想更多的人会有matplotlib的经验

lambdify()是符号表达式和正则函数之间的接口

from sympy import *
from sympy.utilities.lambdify import lambdify
import math

t = symbols('t')
alpha = [cos(t), sin(t), t]

f = lambdify(t, alpha)

T = [2*math.pi/100*n for n in range(100)]
F = [f(x) for x in T]

import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as axes3d

fig1, ax1 = plt.subplots(subplot_kw=dict(projection='3d'))
ax1.plot(*zip(*F))
ax1.set_aspect('equal')
plt.show()

您必须使用
sympy.plotting
中的方法,如果您需要
plot3d\u Parameteric\u line

from sympy import *
from sympy.plotting import plot3d_parametric_line

t = symbols('t')
alpha = [cos(t), sin(t), t]
plot3d_parametric_line(*alpha)
或者
plot3d\u参数线(cos(t),sin(t),t,(t,0,2*pi))
如果您想设置t的限制


寻找更多的例子,用Symphy绘制3d图:

先研究一下。遗憾的是,这个答案已经过时了。
alpha
的此定义导致错误
AttributeError:“Zero”对象没有属性“cos”
。对于
alpha=[2*t,3*t,t]
,最后一行导致
NotImplementedError:目前无法在3D轴上手动设置纵横比,如前所述。
from sympy import *
from sympy.plotting import plot3d_parametric_line

t = symbols('t')
alpha = [cos(t), sin(t), t]
plot3d_parametric_line(*alpha)