如何在 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)) 

蓝点代表数据点,蓝色直线代表线性趋势线。

请注意,您还可以使用colorlinewidthlinestyle参数来更改趋势线的外观:

 #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 中的刻度数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注