「excel シグモイド曲線 書き方」
といった検索キーワードを元に、最近のExcelを使ってシグモイド曲線を描く手順をご紹介しました。
SEQUENCE関数によってExcelでこういったグラフを作成するのが楽になったと感じますが、単にシグモイド曲線を描きたいのであれば、Pythonのほうが向いているように思います。
シグモイド曲線を描くPythonのスクリプト
以下のようなスクリプトで済んでしまいます。
import matplotlib.pyplot as plt
a = 10
x = np.linspace(-1.0, 1.0, 101)
y = 1 / (1 + np.exp(-a*x))
plt.show()
jupyte labで実行すると、下図のようなグラフが出力されます。
Excelの場合、元データをワークシート上に作成する必要がありますが、Pythonなら、
a = 10
x = np.linspace(-1.0, 1.0, 101)
y = 1 / (1 + np.exp(-a*x))
で済みます。
もちろん見えないだけで、裏ではグラフの元になるデータは作られています。
Excelではx軸のデータ作成を、
=SEQUENCE(20+1, 1, -1*10, 0.1*10)/10
で行っていましたが、linspace関数を使って、
x = np.linspace(-1.0, 1.0, 101)
としています。
y軸のデータ作成については、
=1/(1 + EXP(-A2*B2#))
当然実際のコードとしては異なりますが、考え方は同じです。
y = 1 / (1 + np.exp(-a*x))
NumPyのexp関数を利用しています。
シグモイド曲線の見た目を変更する
上記スクリプトの
x = np.linspace(-1.0, 1.0, 101)
の部分を
x = np.linspace(-1.0, 1.0, 11)
とすれば、滑らかさが低減した下図のようなグラフになります。
また、
plt.plot(x, y)
の部分を、
plt.plot(x, y, color='#FF0000', linewidth=3.5)
とすれば、下図のようなグラフが出力されます。
最終更新日時:2021-09-24 21:00
Home » Python » NumPyの使い方 » シグモイド曲線をNumPyとMatplotlibで-np.exp関数