LoginSignup
1
3

More than 3 years have passed since last update.

pythonで関数をグラフに可視化

Last updated at Posted at 2019-05-26

概要

レポートの作成などで得られた関数をグラフに表したいことは非常に多い。ここではフィッティングなどの場面で用いられるローレンツ関数を例としてpythonでグラフを描画し保存する方法を解説する

環境

PC:windows10(64bit)
python3.6.8
matplotlib2.2.0
numpy1.16.0
jupyter notebook1.1.0

ライブラリのインストールはpipにより行っている。

pip install jupyter notebook


pip install numpy


pip install matplotlib

理論

ローレンツ関数は以下の式で表される。

f(x) = y0 + \frac{1}{\pi} \frac{\omega}{(x-x0)^2 + \omega^2} 

関数の定数としてω,x0,y0を含む。
関数の概形は下の結果を参照していただきたい。x = x0で極大値をとる。

コード

それではpython でローレンツ関数を描画していく。

コードは以下の通りである。

import pylab as plt
import numpy as np

xmin=-5; xmax=5; npoints=100
delta=(xmax-xmin)/npoints
w=2; x0=0; y0=0

x=np.arange(xmin,xmax,delta)
y=y0+(1/np.pi)*(w/(((x-x0)**2)+w**2))

plt.plot(x,y,'r',lw=2)
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("lorentz function")
plt.grid(True)

plt.savefig('figure.png')
plt.show()

pylabとnumpyをインポート

import pylab as plt
import numpy as np

定義域(xmin,xmax)とデータ点の数(npoints)を指定する

xmin=-5; xmax=5; npoints=100
delta=(xmax-xmin)/npoints

定義域、データ点が決まるとデータ点の間隔δも決定する。

関数内の定数を指定

w=2; x0=0; y0=0

これで関数を描画するために必要な情報が揃う。

関数の定義

x=np.arange(xmin,xmax,delta)
y=y0+(1/np.pi)*(w/(((x-x0)**2)+w**2))

ローレンツ関数を定義する

xはx軸の配列でyは各xの値に対応するyの値を決定する。

関数の描画とグラフの保存

plt.plot(x,y,'r',lw=2)
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title("lorentz function")
plt.grid(True)

plt.savefig('figure.png')
plt.show()

plot()でデータ点の指定と線の色('r')と線幅(lw=2)を決める

savefig()でグラフを保存する

show()でjupyter notebook内にグラフを表示する

結果

実行結果は以下の通りである。

figure.png

.pngファイルとして保存したグラフを示している

まとめ

ローレンツ関数を例としてpythonで関数を描画する方法を解説した。

適宜描画したい関数に合わせてコードを変更すればよい

参考

・(https://teratail.com/questions/66705)
matplotlib
コーシー分布

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3