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関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。