如何在Matplotlib中为绘图添加一条平均线(附实例)

1,026 阅读1分钟

你可以使用下面的基本语法在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

注意,我们还可以使用颜色线条样式线宽参数来分别指定平均线的颜色、线条类型和线宽。

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')

average line in Matplotlib

注意:你可以在这里找到axhline()函数的完整在线文档。

其他资源

下面的教程解释了如何在Matplotlib中执行其他常见任务。

如何在Matplotlib中添加一条趋势线
如何在Matplotlib中绘制一条垂直线
如何在Matplotlib中绘制多条线