Как добавить среднюю линию на график в Matplotlib


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

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter (df.x , df.y )

#add horizontal line at mean value of y
plt.axhline (y=np.nanmean (df.y ))

Обратите внимание, что axhline добавляет к графику горизонтальную линию, а nanmean вычисляет среднее значение (игнорируя NaN), где должна быть размещена линия.

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

Пример: добавьте среднюю линию на график в Matplotlib

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
 'y ':[2, 5, 6, 5, 7, 8, 10, 12, 10, 9, 11, 15]})

#view first five rows of DataFrame
df.head ()

 x y
0 1 2
1 2 5
2 3 6
3 4 5
4 5 7

Мы можем использовать следующий код, чтобы создать точечную диаграмму x и y и добавить горизонтальную линию, которая представляет среднее значение y:

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter (df.x , df.y )

#add horizontal line at mean value of y
plt.axhline (y=np.nanmean (df.y )) 

Мы видим, что средняя линия была добавлена к графику чуть выше значения y, равного 8.

Если мы вычислим среднее значение y, мы обнаружим, что оно равно 8,333:

#calculate average y-value
np.nanmean (df.y )

8.333333333

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

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter (df.x , df.y )

#add horizontal line at mean value of y
plt.axhline (y=np.nanmean (df.y ), color='red', linestyle='--', linewidth= 3 , label='Avg') 

Примечание.Полную онлайн-документацию по функции axhline() можно найти здесь .

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

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

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