目次
はじめに
片対数グラフの回帰直線をPythonで求めようとして少しハマったのでそのメモ。
実装
必要なライブラリのインポート
import numpy as np import matplotlib import matplotlib.pyplot as plt
仮想のデータを準備
x = np.array([3200, 650, 1200, 30, 350, 750, 120, 15, 70, 150]) y = np.array([75, 70, 65, 50, 70, 77, 45, 40, 30, 68])
普通にプロット
plt.scatter(x, y, color = 'black', marker='s') plt.xlabel('X') plt.ylabel('Y') plt.grid()
X軸を対数変換して回帰直線を求める
log_x = [np.log10(i) for i in x] plt.xscale("log") plt.xlim([x.min(),x.max()]) plt.scatter(x, y, color = 'black', marker='s') # 回帰直線 linear = np.polyfit(log_x, y, 1) y_linear = [linear[0] * x_linear + linear[1] for x_linear in log_x] plt.plot(x, y_linear) print('傾き:', linear[0]) #傾き: 17.696025465382565 print('切片:', linear[1]) #切片: 17.290544163649848 plt.xlabel('X') plt.ylabel('Y') plt.grid() plt.show()