Функция abline в R может использоваться для добавления прямой линии на график.
К сожалению, этой функции нет в Matplotlib, но мы можем определить следующую функцию для репликации функции abline в Python:
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, '--')
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd
#create DataFrame
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. Использование аблайна для построения линии с заданным наклоном и точкой пересечения
Мы можем использовать следующий код для построения прямой линии с наклоном 3 и точкой пересечения 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)

В результате получается подобранная линия регрессии, которая проходит непосредственно через точки на графике.
Примечание.Полную документацию по функции polyfit в NumPy можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как суммировать определенные столбцы в Pandas
Как суммировать столбцы на основе условия в Pandas
Как рассчитать обратную кумулятивную сумму в Pandas