目次
SciPy, Pandas
前回、Pythonのmatplotlibで、xlim、ylim、set_xlim、set_ylimを使ってグラフエリアの最大値、最小値を取得する方法を紹介しました。
【matplotlib】xlim、ylim、set_xlim、set_ylimでグラフエリアの最大値、最小値を取得する方法[Python]
matplotlib 前回、PythonのNumPyでndarrayから複数のインデックスを指定し複数の要素を一度に取得する方法を紹介しました。 今回はmatplotlibでxlim、ylimを使ってグラ…
今回はSciPyやPandasを使ってグラフの歪度(左右非対称具合)と尖度(尖り具合)を取得する方法を紹介します。
ということでまずはlmfitのSkewed Voigt Modelを使って、こんなグラフを描いてみました。
import numpy as np
import matplotlib.pyplot as plt
from lmfit.lineshapes import skewed_voigt
x_list = np.arange(0, 100, 0.1)
y_skewedvoigt = skewed_voigt(x_list, 10, 20, 15, 10, 5)
fig = plt.figure()
plt.clf()
plt.plot(x_list, y_skewedvoigt)
plt.show()
実行結果
それでは始めていきましょう。
グラフの歪度(左右非対称具合)を取得する方法
SciPy
SciPyを使ってグラフの歪度(左右非対称具合)を取得するには「scipy.stats」の「skew」を用います。
使い方は「skew(Y値のリスト)」です。
import numpy as np
from lmfit.lineshapes import skewed_voigt
from scipy.stats import skew
x_list = np.arange(0, 100, 0.1)
y_skewedvoigt = skewed_voigt(x_list, 10, 20, 15, 10, 5)
y_skew = skew(y_skewedvoigt)
print(y_skew)
実行結果
0.9916208664386017
Pandas
Pandasを使ってグラフの歪度(左右非対称具合)を取得するには「データフレーム.skew()」を使います。
import numpy as np
from lmfit.lineshapes import skewed_voigt
import pandas as pd
x_list = np.arange(0, 100, 0.1)
y_skewedvoigt = skewed_voigt(x_list, 10, 20, 15, 10, 5)
df = pd.DataFrame(y_skewedvoigt, columns=["skewedvoigt"])
print(df["skewedvoigt"].skew())
実行結果
0.9931111542993579
グラフの尖度(尖り具合)を取得する方法
SciPy
SciPyでグラフの尖度(尖り具合)を取得するには、「scipy.stats」の「kurtosis」を使います。
import numpy as np
from lmfit.lineshapes import skewed_voigt
from scipy.stats import kurtosis
x_list = np.arange(0, 100, 0.1)
y_skewedvoigt = skewed_voigt(x_list, 10, 20, 15, 10, 5)
y_kurt = kurtosis(y_skewedvoigt)
print(y_kurt)
実行結果
-0.4494187127043654
Pandas
Pandasでグラフの尖度(尖り具合)を取得するには、「データフレーム.kurt()」を使います。
import numpy as np
from lmfit.lineshapes import skewed_voigt
import pandas as pd
x_list = np.arange(0, 100, 0.1)
y_skewedvoigt = skewed_voigt(x_list, 10, 20, 15, 10, 5)
df = pd.DataFrame(y_skewedvoigt, columns=["skewedvoigt"])
print(df["skewedvoigt"].kurt())
実行結果
-0.4456498385795187
次回はPyAutoGUIを使ってスクリーンショットを撮影する方法を紹介します。
ではでは今回はこんな感じで。
コメント