你可以使用下面的基本语法在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')
注意:你可以在这里找到axhline()函数的完整在线文档。
其他资源
下面的教程解释了如何在Matplotlib中执行其他常见任务。
如何在Matplotlib中添加一条趋势线
如何在Matplotlib中绘制一条垂直线
如何在Matplotlib中绘制多条线