SymPy – 绘图
SymPy使用Matplotlib库作为后端,渲染数学函数的二维和三维图。确保Matplotlib在当前Python安装中是可用的。如果没有,使用下面的命令安装它
pip install matplotlib
绘图支持定义在sympy.plotting模块中。在绘图模块中,有以下函数
- plot – 二维线状图
-
plot3d - 三维线状图
-
plot_parametric – 二维参数图
-
plot3d_parametric - 三维参数图
plot()函数返回一个Plot类的实例。一个绘图图可以有一个或多个SymPy表达式。虽然它能够使用Matplotlib作为后端,但也可以使用其他后端,如texplot、pyglet或Google charts 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')
要为同一范围绘制多个图,在范围元组之前给出多个表达式。
>>> 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)
下面的例子绘制了一个三维曲面图–
>>> from sympy.plotting import plot3d
>>> x,y=symbols('x y')
>>> plot3d(x*y, (x, -10,10), (y, -10,10))
和二维图一样,三维图也可以有多个图,每个图都有不同的范围。
>>> plot3d(x*y, x/y, (x, -5, 5), (y, -5, 5))
plot3d_parametric_line()函数渲染了一个3维参数线图。
>>> 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))