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