Sympy 简明教程

SymPy - Plotting

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

pip install matplotlib

绘图支持在 sympy.plotting 模块中定义。绘图模块中存在以下函数 -

  1. plot - 2D 线图

  2. plot3d - 3D 线图

  3. plot_parametric - 2D 参数图

  4. plot3d_parametric - 3D 参数图

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

plot(expr, range, kwargs)

其中 expr 是任何有效的 symPy 表达式。如果没有注明,则范围使用默认值 (-10, 10)。

以下示例绘制了 range(-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() 函数中指定。

  1. line_color − 指定绘图线条的颜色。

  2. title − 作为标题显示的字符串

  3. xlabel − 作为 X 轴标签显示的字符串

  4. 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)

以下示例绘制一个三维曲面图形 −

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

与 2D 图形类似,三维图形也可以有多个不同范围的图形。

>>> plot3d(x*y, x/y, (x, -5, 5), (y, -5, 5))
3 dimensional parametric line plot

plot3d_parametric_line() 函数渲染三维参数线图形。

>>> 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