Matplotlib で abline 関数を使用する方法


R のabline関数を使用すると、パスに直線を追加できます。

残念ながら、この関数は Matplotlib には存在しませんが、Python で abline 関数を複製する次の関数を定義できます。

 import matplotlib. pyplot as plt
import numpy as np

def abline (slope, intercept):
    axes = plt. gca ()
    x_vals = np. array ( axes.get_xlim ())
    y_vals = intercept + slope * x_vals
    plt. plot (x_vals, y_vals, '--')

次の例は、実際に次の pandas DataFrame でこの構文を使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' x ': [1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11],
                   ' y ': [13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40]})

#view first five rows of DataFrame
df. head ()

	x y
0 1 13
1 1 14
2 2 17
3 3 12
4 4 23

例 1: Abline を使用して水平線を描画する

次のコードを使用すると、前に定義したabline関数で水平線を描画できます。

 #create scatterplot
plt. scatter (df. x , df. y )

#add horizontal line at y=30
abline( 0,30 ) 

結果は、y=30 の水平線になります。

例 2: aline を使用して、特定の傾きと交点を持つ線を描画します

次のコードを使用して、傾き3と y 切片15の線を描画できます。

 #create scatterplot
plt. scatter (df. x , df. y )

#add straight line with slope=3 and intercept=15
abline( 3,15 ) 

結果は、傾きが 3、交点が 15 の直線になります。

例 3: abline を使用して回帰直線をプロットする

次のコードを使用すると、前に定義したabline関数で回帰直線をプロットできます。

 #calculate slope and intercept of regression line
slope = np. polyfit (df. x , df. y , 1)[ 0 ]
intercept = np. polyfit (df. x , df. y , 1)[ 1 ]

#create scatterplot
plt. scatter (df. x , df. y )

#add regression line
abline(slope, intercept) 

結果は、プロット点を直接通過する近似回帰直線になります。

: NumPy のPolyfit関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas で特定の列を合計する方法
Pandas で条件に基づいて列を合計する方法
パンダで逆累積和を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です