Как добавить среднюю линию на график в matplotlib
Вы можете использовать следующий базовый синтаксис, чтобы добавить среднюю линию на график в Matplotlib:
import matplotlib. pyplot as plt import numpy as np #create scatterplot 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.
Предположим, у нас есть следующий DataFrame pandas:
import pandas as pd
#createDataFrame
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 scatterplot 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 n.p. nanmean (df. y ) 8.333333333
Обратите внимание, что мы также можем использовать аргументы color , linestyle и linewidth , чтобы указать цвет, тип линии и ширину средней линии соответственно:
import matplotlib. pyplot as plt import numpy as np #create scatterplot 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