欢迎访问宙启技术站
智能推送

在Python中使用scatter()函数绘制带有拟合直线的散点图

发布时间:2024-01-06 03:34:50

绘制散点图是数据可视化中常用的一种方法,利用散点图可以直观地展示变量之间的关系。在Python中,可以使用matplotlib库的scatter()函数绘制散点图。

scatter()函数的基本语法如下:

plt.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None)

其中,x和y分别表示散点的横坐标和纵坐标,s表示散点的大小,c表示散点的颜色,marker表示散点的形状。

下面以一个具体的例子详细介绍如何使用scatter()函数绘制带有拟合直线的散点图。

首先,我们需要导入相应的库并生成一些数据。在这个例子中,我们使用numpy库生成一组随机数作为横坐标,然后加上一些噪声生成纵坐标。

import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = x + np.random.randn(100) / 10

接下来,我们可以使用scatter()函数绘制散点图。在这个例子中,我们将横坐标和纵坐标分别传入x和y参数,设置s为50表示散点的大小为50,设置c为'b'表示散点的颜色为蓝色,设置marker为'o'表示散点的形状为圆形。

# 绘制散点图
plt.scatter(x, y, s=50, c='b', marker='o')

然后,我们可以使用numpy库的polyfit()函数拟合一条直线。该函数接收两个参数, 个参数为横坐标,第二个参数为纵坐标,返回拟合直线的斜率和截距。

# 拟合直线
fit = np.polyfit(x, y, 1)
slope = fit[0]
intercept = fit[1]

最后,我们可以使用numpy库的poly1d()函数生成一个多项式,然后使用matplotlib库的plot()函数绘制拟合直线。在这个例子中,我们将直线的横坐标设置为x,纵坐标设置为斜率乘以x再加上截距。

# 绘制拟合直线
plt.plot(x, slope * x + intercept, 'r')

完整的代码如下:

import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
x = np.random.rand(100)
y = x + np.random.randn(100) / 10

# 绘制散点图
plt.scatter(x, y, s=50, c='b', marker='o')

# 拟合直线
fit = np.polyfit(x, y, 1)
slope = fit[0]
intercept = fit[1]

# 绘制拟合直线
plt.plot(x, slope * x + intercept, 'r')

# 显示图像
plt.show()

运行以上代码,即可得到带有拟合直线的散点图。在图形中,蓝色圆形表示散点,红色线表示拟合直线。

使用scatter()函数绘制带有拟合直线的散点图可以直观地展示数据的分布情况,并帮助我们判断变量之间的关系。通过拟合直线可以更好地了解数据的趋势和变化规律,同时也可以用来预测未来的趋势。因此,掌握如何使用scatter()函数绘制带有拟合直线的散点图是非常有用的。