Как добавить линию тренда в Matplotlib (с примером)


Вы можете использовать следующий базовый синтаксис, чтобы добавить линию тренда на график в Matplotlib:

#create scatterplot
plt.scatter (x, y)

#calculate equation for trendline
z = np.polyfit (x, y, 1)
p = np.poly1d (z)

#add trendline to plot
plt.plot (x, p(x))

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: создание линейной линии тренда в Matplotlib

В следующем коде показано, как создать базовую линию тренда для диаграммы рассеяния в Matplotlib:

import numpy as np
import matplotlib.pyplot as plt

#define data
x = np.array([8, 13, 14, 15, 15, 20, 25, 30, 38, 40])
y = np.array([5, 4, 18, 14, 20, 24, 28, 33, 30, 37])

#create scatterplot
plt.scatter (x, y)

#calculate equation for trendline
z = np.polyfit (x, y, 1 )
p = np.poly1d (z)

#add trendline to plot
plt.plot (x, p(x)) 

Синие точки представляют точки данных, а прямая синяя линия представляет собой линейную линию тренда.

Обратите внимание, что вы также можете использовать аргументы color , linewidth и linestyle для изменения внешнего вида линии тренда:

#add custom trendline to plot
plt.plot (x, p(x), color=" purple", linewidth= 3 , linestyle=" -- ")

Пример 2: создание полиномиальной линии тренда в Matplotlib

Чтобы создать полиномиальную линию тренда, просто измените значение в функции np.polyfit() .

Например, мы могли бы использовать значение 2 для создания квадратичной линии тренда:

import numpy as np
import matplotlib.pyplot as plt

#define data
x = np.array([8, 13, 14, 15, 15, 20, 25, 30, 38, 40])
y = np.array([5, 4, 18, 14, 20, 24, 28, 33, 30, 37])

#create scatterplot
plt.scatter (x, y)

#calculate equation for quadratic trendline
z = np.polyfit (x, y, 2 )
p = np.poly1d (z)

#add trendline to plot
plt.plot (x, p(x)) 

Обратите внимание, что линия тренда теперь изогнута, а не прямая.

Эта полиномиальная линия тренда особенно полезна, когда ваши данные демонстрируют нелинейный шаблон, а прямая линия плохо отражает тренд в данных.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции в Matplotlib:

Как скрыть оси в Matplotlib
Как повернуть метки галочки в Matplotlib
Как изменить количество тиков в Matplotlib