SymPy-プロット
SymPyは、Matplotlibライブラリをバックエンドとして使用して、数学関数の2次元および3次元プロットをレンダリングします。Matplotlibが現在のPythonインストールで利用可能であることを確認してください。そうでない場合は、次のコマンドを使用して同じものをインストールします-
pip install matplotlib
プロットのサポートはsympy.pttingモジュールで定義されています。プロットモジュールには次の機能があります-
plot −2Dラインプロット
plot3d −3Dラインプロット
plot_parametric −2Dパラメトリックプロット
plot3d_parametric −3Dパラメトリックプロット
plot()関数は、Plotクラスのインスタンスを返します。プロット図には、1つ以上のSymPy式が含まれる場合があります。Matplotlibをバックエンドとして使用できますが、texplot、pyglet、Google ChartsAPIなどの他のバックエンドも使用できます。
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')
同じ範囲に対して複数のプロットを描画するには、範囲タプルの前に複数の式を指定します。
>>> 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()関数は、3次元プロットをレンダリングします。
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プロットと同様に、3次元プロットにも、それぞれ範囲が異なる複数のプロットを含めることができます。
>>> 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))