Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで散布図に傾向線(トレンドライン)を描画する方法

Matplotlibで散布図にトレンドライン(傾向線)を描くには、NumPyのpolyfit()メソッドとpoly1d()メソッドを組み合わせて、傾向線のデータポイントを求めます。polyfit()は最小二乗法による多項式近似の係数を返し、poly1d()はその係数から近似式(関数)を生成してくれるため、この2つを使うことで簡単に回帰直線を描画できます。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。

  • NumPyを使ってx・yのデータポイントを作成します。

  • Figureとサブプロットのセットを作成します。

  • scatter()メソッドでx・yのデータポイントを散布図としてプロットします。

  • polyfit()poly1d()メソッドを使って、傾向線のデータポイントを求めます。

  • plot()メソッドでxとp(x)の値を直線として描画します。

  • show()メソッドを呼び出して図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = np.random.rand(100)
y = np.random.rand(100)
fig, ax = plt.subplots()
_ = ax.scatter(x, y, c=x, cmap='plasma')
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x, p(x), "r-o")

plt.show()

この例では、np.polyfit(x, y, 1)の第3引数「1」が1次多項式(直線)での近似を意味しています。2や3を指定すれば、曲線による近似も可能です。また、"r-o"という書式指定により、赤色(r)のマーカー付き実線(-o)で傾向線が描かれます。

実行結果

Matplotlibで散布図に傾向線(トレンドライン)を描画する方法

  1. PythonのMatplotlibで3次元ラインプロットを作成する方法【サンプルコード付き解説】

    Matplotlibとは Matplotlibは、Pythonで最も広く利用されているデータ可視化ライブラリの一つです。データを可視化することは、大量の数値を直接読んだり複雑な計算を行ったりしなくても、データの中で何が起きているのかを直感的に把握できるようにするための重要なステップです。 また、定量的な洞察を効果的に伝える手段としても非常に役立ちます。Matplotlibは主に2次元プロットの作成に使用されますが、オブジェクト指向APIを備えているため、作成したグラフをPythonアプリケーションへ簡単に組み込むことが可能です。さらに、IPythonシェル、Jupyter Notebook、S

  2. PythonのMatplotlibでヒストグラムを作成する方法をわかりやすく解説

    Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は非常に重要なステップです。数値を一つずつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を効果的に伝える手段としても優れています。MatplotlibとはMatplotlibは、データをもとに2次元のプロット(グラフ)を作成するためのライブラリです。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも簡単に行えます。IPythonシェル、Jupyter Noteboo