SymPy 绘图


SymPy 使用 Matplotlib 库作为后端来渲染数学函数的 2-D 和 3-D 图。确保 Matplotlib 在当前 Python 安装中可用。如果没有,请使用以下命令安装:

pip install matplotlib

绘图支持在 sympy.plotting 模块中定义。绘图模块中有以下功能:

  • plot : 二维线图

  • plot3d : 3D线图

  • 绘图参数 : 二维参数图

  • plot3d_parametric : 3D参数图

plot() 函数返回 Plot 类的一个实例。一个绘图图可能有一个或多个 SymPy 表达式。虽然它能够使用 Matplotlib 作为后端,但也可以使用其他后端,例如 texplot、pyglet 或 Google 图表 API。

plot(expr, range, kwargs)

其中 expr 是任何有效的 symPy 表达式。如果未提及,范围使用默认值作为 (-10, 10)。

以下示例为范围(-10,10)中的每个值绘制 x2 的值:

>>> from sympy.plotting import plot 
>>> from sympy import * 
>>> x=Symbol('x') 
>>> plot(x**2, line_color='red')
Range Tuple

要为同一范围绘制多个图,请在范围元组之前给出多个表达式。

>>> plot( sin(x),cos(x), (x, -pi, pi))
Separate Range

你还可以为每个表达式指定单独的范围。

plot((expr1, range1), (expr2, range2))

下图绘制了不同范围内的 sin(x) 和 cos(x)。

>>> plot( (sin(x),(x, -2*pi, 2*pi)),(cos(x), (x, -pi, pi)))
Plot Function

可以在 plot() 函数中指定以下可选关键字参数。

  • line_color : 指定绘图线的颜色。

  • title :要显示为标题的字符串

  • xlabel :要显示为X轴标签的字符串

  • ylabel :要显示为y轴标签的字符串

>>> plot( (sin(x),(x, -2*pi, 2*pi)),(cos(x), (x, -pi, pi)), line_color='red', title='SymPy plot example')
Three Dimensional Plot

plot3d() 函数渲染一个三维图。

plot3d(expr, xrange, yrange, kwargs)

以下示例绘制 3D 曲面图:

>>> from sympy.plotting import plot3d 
>>> x,y=symbols('x y') 
>>> plot3d(x*y, (x, -10,10), (y, -10,10))
2D Plot

与 2D 绘图一样,3D 绘图也可以有多个绘图,每个绘图具有不同的范围。

>>> plot3d(x*y, x/y, (x, -5, 5), (y, -5, 5))
3 Dimensional Parametric Line Plot

plot3d_parametric_line() 函数呈现 3 维参数线图。

>>> from sympy.plotting import plot3d_parametric_line 
>>> plot3d_parametric_line(cos(x), sin(x), x, (x, -5, 5))
Parametric Surface Plot

要绘制参数曲面图,请使用 plot3d_parametric_surface() 函数。

plot3d_parametric_surface(xexpr, yexpr, zexpr, rangex, rangey, kwargs)

>>> from sympy.plotting import plot3d_parametric_surface 
>>> plot3d_parametric_surface(cos(x+y), sin(x-y), x-y, (x, -5, 5), (y, -5, 5))
Plot 3D Parametric Surface Function