Matplotlib 最佳拟合线

Matplotlib 最佳拟合线

参考:best fit line matplotlib

在数据可视化中,最佳拟合线是一条通过散点图中大部分数据点的直线或曲线。它用于显示数据趋势和预测未来值。在Matplotlib中,我们可以使用线性回归或多项式拟合来绘制最佳拟合线。接下来,我们将详细介绍如何使用Matplotlib实现最佳拟合线。

1. 线性回归拟合

线性回归是一种用于找到自变量和因变量之间线性关系的统计方法。在Matplotlib中,我们可以使用Polyfit函数进行线性回归拟合。以下是一个简单的示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 创建一些随机数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])

# 使用Polyfit进行线性回归拟合
coefficients = np.polyfit(x, y, 1)
p = np.poly1d(coefficients)

# 绘制原始数据和拟合线
plt.scatter(x, y, color='blue')
plt.plot(x, p(x), color='red')
plt.show()

Output:

Matplotlib 最佳拟合线

在上面的示例中,我们创建了一组简单的x和y值,然后使用Polyfit函数对其进行线性回归拟合,并绘制出原始数据和拟合线。

2. 多项式拟合

除了线性回归外,我们还可以使用多项式拟合来拟合非线性数据。在Matplotlib中,我们可以通过改变Polyfit函数的次数来实现多项式拟合。以下是一个示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 创建一些非线性数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 4, 9, 16, 25])

# 使用Polyfit进行多项式拟合(次数为2)
coefficients = np.polyfit(x, y, 2)
p = np.poly1d(coefficients)

# 绘制原始数据和拟合线
plt.scatter(x, y, color='blue')
plt.plot(x, p(x), color='red')
plt.show()

Output:

Matplotlib 最佳拟合线

在上面的示例中,我们创建了一组非线性的x和y值,并使用Polyfit函数进行二次多项式拟合,最后绘制出原始数据和拟合线。

3. 添加误差线

在显示最佳拟合线时,我们还可以添加误差线来表示拟合线的不确定性范围。这在统计学中非常常见。以下是一个示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 创建一些随机数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])

# 使用Polyfit进行线性回归拟合
coefficients = np.polyfit(x, y, 1)
p = np.poly1d(coefficients)

# 计算拟合线的误差
y_fit = p(x)
y_err = y - y_fit

# 绘制原始数据、拟合线和误差线
plt.errorbar(x, y, yerr=y_err, fmt='o', color='blue')
plt.plot(x, p(x), color='red')
plt.show()

Output:

Matplotlib 最佳拟合线

在上面的示例中,我们计算了拟合线的误差,并使用Errorbar函数添加了误差线。这样可以更清晰地展示拟合线的不确定性范围。

4. 自定义最佳拟合线

Matplotlib还提供了丰富的参数和样式选项,可以帮助我们自定义最佳拟合线的外观。以下是一个示例代码:

import numpy as np
import matplotlib.pyplot as plt

# 创建一些随机数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])

# 使用Polyfit进行线性回归拟合
coefficients = np.polyfit(x, y, 1)
p = np.poly1d(coefficients)

# 绘制原始数据和自定义样式的拟合线
plt.scatter(x, y, color='blue')
plt.plot(x, p(x), color='red', linestyle='--', linewidth=2)
plt.title('Custom Best Fit Line', fontsize=14)
plt.xlabel('X-axis', fontsize=12)
plt.ylabel('Y-axis', fontsize=12)
plt.grid(True)
plt.show()

Output:

Matplotlib 最佳拟合线

在上面的示例中,我们自定义了拟合线的样式,包括线型、线宽、标题、坐标轴标签和网格。

通过以上示例代码,我们可以看到如何在Matplotlib中实现最佳拟合线。无论是线性回归还是多项式拟合,都可以帮助我们更好地理解数据的趋势和预测未来值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程