logo

Python Matplotlib 和 Numpy 的散点图和线性拟合

作者:沙与沫2024.01.17 21:58浏览量:18

简介:介绍如何使用 Python 的 Matplotlib 和 Numpy 库绘制散点图和进行线性拟合。

在 Python 中,我们可以使用 Matplotlib 和 Numpy 库来创建散点图并对这些数据进行线性拟合。首先,确保已经安装了这两个库。如果还没有安装,可以使用 pip 安装:

  1. pip install matplotlib numpy

下面是一个简单的例子,演示如何使用这两个库来绘制散点图并进行线性拟合。

  1. import numpy as np
  2. import matplotlib.pyplot as plt

创建数据
我们将生成一些随机数据来模拟散点图。我们将使用 Numpy 的 random 模块。

  1. np.random.seed(0) # 设置随机种子以确保结果可复现
  2. x = np.random.rand(50) # 生成 50 个随机 x 值
  3. y = 3 * x + 2 + np.random.randn(50) # 生成对应的 y 值,其中 y=3x+2 是线性关系,加上一些噪声

绘制散点图
现在,我们将使用 Matplotlib 来绘制这些数据点的散点图。

  1. plt.scatter(x, y, label='Data Points') # 使用散点图来显示数据点
  2. plt.xlabel('X values') # 设置 x 轴标签
  3. plt.ylabel('Y values') # 设置 y 轴标签
  4. plt.title('Scatter Plot of Data Points') # 设置图表标题
  5. plt.legend() # 显示图例
  6. plt.show() # 显示图表

线性拟合
接下来,我们将使用 Numpy 的 polyfit 函数来进行线性拟合。这个函数会返回一个数组,表示拟合直线的系数。在这个例子中,我们只关心斜率(第一个系数)和截距(第二个系数)。

  1. # 使用 Numpy 的 polyfit 函数进行线性拟合
  2. slope, intercept = np.polyfit(x, y, 1) # '1' 表示线性拟合(对于多项式拟合,可以指定其他数字)
  3. print(f'Slope: {slope}, Intercept: {intercept}') # 打印斜率和截距

绘制拟合线
最后,我们将使用 Matplotlib 来绘制拟合线。我们将使用之前计算的斜率和截距来创建拟合线方程 y = mx + b。然后,我们将使用 Matplotlib 的 plot 函数来绘制这条线。
```python

使用计算得到的斜率和截距来绘制拟合线

plt.plot(x, slope * x + intercept, label=’Fitted Line’) # y = mx + b,其中 m=slope, b=intercept
plt.legend() # 显示图例
plt.show() # 显示图表

相关文章推荐

发表评论