SymPyの使い方20 ~ plottingモジュール
今回からSymPyのplottingモジュールを用いたplotの方法について紹介する。今回は簡単な2次元のプロットについて紹介する。
1. plottingモジュール
Python上でのplotではmatplotを利用するのが一般的だが、シンボルの状態から数値評価を実行してNumpy arrayとしてデータを作成する必要がある。一方でSymPyのplottingモジュールではMathematicaのようにシンボルの状態でプロットを実行することができる。プロットの種類は2次元、3次元、パラメトリックプロット(2D/3D)が実行できる。
plottingモジュールを利用するには以下のようにimportする。
from sympy.plotting import plot
最も単純にプロットを実行するにはplot(関数)
とする。例えばシンボルx
を定義すれば、plotコマンドでプロットすることができる。
x=symbols('x') plot(x**2)
複数プロットを表示するには、plot(関数1,関数2)
としてplot内に複数の関数を記述する。
plot(x,x**2)
2. プロットの書式
プロット範囲を指定するにはplot(関数,(x,最小値,最大値))
とする。例えば
plot(x,x**2,(x,-5,5))
別々に範囲を指定したい場合は
plot((x,(x,-10,10)),(x**2,(x,-5,5)))
なおyの範囲を指定したい場合はylim=(最小値,最大値)
を用いて
plot(x,x**2,ylim=(0,5))
プロットの線種、例えば色をそれぞれ割り当てるにはplot関数に返り値を設定した上で、片方の返り値p1にp2を追加して.show()
で表示する。
それぞれのplot関数は最初は非表示(show=False)として、線の色はline_color
を用いて設定する。
p1=plot(x,(x,-20,20),show=False,line_color='b') p2=plot(x**2,(x,-5,5),show=False,line_color='r') p1.append(p2[0]) p1.show()
最後にSymPy関数としてexp,cosをimportして、タイトルや軸名それぞれ線色、凡例を入れたプロット例を以下に示す。
p1=plot(exp(-x),(x,-2,2),show=False,line_color='b',title='Test Fuctions',ylabel='y',label='exp(-x)',legend=True) p2=plot(cos(x),(x,-5,5),show=False,line_color='r',label='cos(x)',legend=True) p1.append(p2[0]) p1.show()
3. まとめ
SymPyのplottingモジュールを用いたplotの方法のうち今回は簡単な2次元のプロットについて紹介した。