Добавление линии тренда к линейному графику matplotlib на python

#python #pandas #plot #trendline

#python #pandas #matplotlib

Вопрос:

Прошу прощения, если об этом уже спрашивали, но я нигде не могу найти ответ. Я хочу добавить общую линию тренда к plt-графику. Пример данных:

 import pandas as pd
data = pd.DataFrame({'year': [2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 
                              2019],
                     'value': [2, 5, 8, 4, 1, 6, 10, 14, 8]})

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = [28, 26]
data.plot(x = "year", y = "value", fontsize = 30)
plt.xlabel('Time', fontsize = 30)
  

введите описание изображения здесь

Как я могу добавить линию тренда?

Ответ №1:

Если вы ищете простую подгонку линейной регрессии, вы можете использовать напрямую lmplot или regplot из seaborn . Он выполняет линейную регрессию и отображает соответствие (линию) с доверительным интервалом 95% (оттенки, значение по умолчанию). Вы также можете использовать NumPy для выполнения подгонки. Если вы хотите использовать NumPy, прокомментируйте ниже, и я обновлю.

 import seaborn as sns

# Your DataFrame here 

# sns.lmplot(x='year',y='value',data=data,fit_reg=True) 

sns.regplot(x='year',y='value',data=data, fit_reg=True) 
  

введите описание изображения здесь

Из документов

Функции regplot() и lmplot() тесно связаны, но первая представляет собой функцию уровня осей, в то время как последняя представляет собой функцию уровня фигуры, которая объединяет regplot () и FacetGrid которая позволяет вам строить условные отношения между вашими данными на разных подзаголовках в сетке.