如何在 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))
蓝点代表数据点,蓝色直线代表线性趋势线。
请注意,您还可以使用color 、 linewidth和linestyle参数来更改趋势线的外观:
#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 中的刻度数