如何在 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 中的特定列求和
如何根据 Pandas 中的条件对列求和
如何计算pandas中的反向累积和

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注