如何在 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 中执行其他常见任务: