SymPy 绘图
SymPy 使用 Matplotlib 库作为后端来绘制数学函数的二维和三维图形。确保当前的 Python 安装中可用 Matplotlib。如果没有的话,使用以下命令安装:
pip install matplotlib
绘图支持在sympy.plotting模块中定义。plotting模块中存在以下函数:
- plot − 2D线性图
-
plot3d − 3D线性图
-
plot_parametric − 2D参数图
-
plot3d_parametric − 3D参数图
plot()函数返回一个Plot类的实例。一个绘图图形可以有一个或多个SymPy表达式。尽管它可以使用Matplotlib作为后端,但也可以使用其他后端,如texplot、pyglet或Google图表API。
plot(expr, range, kwargs)
其中expr是任何有效的symPy表达式。如果没有提到,range将使用默认范围为(-10, 10)。
以下示例绘制了范围(-10,10)中每个值的x2的值。
>>> from sympy.plotting import plot
>>> from sympy import *
>>> x=Symbol('x')
>>> plot(x**2, line_color='red')
为了绘制相同范围的多个图表,请在范围元组之前给出多个表达式。
>>> plot( sin(x),cos(x), (x, -pi, pi))
您还可以为每个表达式指定单独的范围。
plot((expr1, range1), (expr2, range2))
下图显示了sin(x)和cos(x)在不同范围内的图像。
>>> plot( (sin(x),(x, -2*pi, 2*pi)),(cos(x), (x, -pi, pi)))
在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')
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图一样,三维图也可以有多个具有不同范围的图。
>>> plot3d(x*y, x/y, (x, -5, 5), (y, -5, 5))
plot3d_parametric_line() 函数渲染一个三维参数线图。
>>> from sympy.plotting import plot3d_parametric_line
>>> plot3d_parametric_line(cos(x), sin(x), x, (x, -5, 5))
要绘制参数化曲面图,请使用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))