Python 散点图入门:3 行代码探索数据关联

104 阅读3分钟

散点图的核心作用是展示两个变量之间的关联关系(比如身高与体重、学习时间与成绩、广告投入与销售额等),通过点的分布位置,能快速判断数据是正相关、负相关还是无相关。借助matplotlib库,新手也能轻松用 Python 画出直观的散点图。

一、准备工作:安装并导入库

和柱状图、折线图一致,核心依赖matplotlib库,若未安装,打开终端 / 命令提示符输入:

pip install matplotlib

安装完成后,在代码中导入库(惯例简写为plt):

import matplotlib.pyplot as plt

二、最基础的散点图:3 行核心代码

我们以 “学生学习时间与考试成绩的关联” 为例,手把手实现第一个散点图。

步骤 1:准备数据

定义两个列表,对应 “自变量”(x 轴,比如学习时间)和 “因变量”(y 轴,比如考试成绩):

# 自变量(x轴):每天学习时间(单位:小时)
study_time = [1, 2, 3, 3.5, 4, 5, 5.5, 6, 7, 8]
# 因变量(y轴):对应考试成绩(单位:分)
scores = [65, 68, 75, 78, 82, 88, 90, 92, 95, 96]

步骤 2:绘制散点图

plt.scatter()函数绘制,核心参数是x轴数据y轴数据

# 绘制散点图(核心代码)
plt.scatter(study_time, scores)

步骤 3:显示图表

plt.show()展示绘制结果:

# 显示图表
plt.show()

完整代码(直接运行可用)

import matplotlib.pyplot as plt

# 1. 准备数据
study_time = [1, 2, 3, 3.5, 4, 5, 5.5, 6, 7, 8]  # x轴:学习时间(小时)
scores = [65, 68, 75, 78, 82, 88, 90, 92, 95, 96]  # y轴:考试成绩(分)

# 2. 绘制散点图
plt.scatter(study_time, scores)

# 3. 显示图表
plt.show()

三、简单优化:让关联更易读

基础散点图可以添加 “点的样式”“标题”“坐标轴说明” 和 “网格线”,让图表更专业,补充 4 行代码即可:

import matplotlib.pyplot as plt

study_time = [1, 2, 3, 3.5, 4, 5, 5.5, 6, 7, 8]
scores = [65, 68, 75, 78, 82, 88, 90, 92, 95, 96]

# 绘制散点图:蓝色圆形点、点的大小为80、边缘黑色(更醒目)
plt.scatter(study_time, scores, color='blue', marker='o', s=80, edgecolors='black')
plt.title("学生学习时间与考试成绩关联图")  # 图表标题
plt.xlabel("每天学习时间(单位:小时)")  # x轴标签
plt.ylabel("考试成绩(单位:分)")  # y轴标签
plt.grid(True, alpha=0.3)  # 添加网格线,alpha控制透明度(0.3=浅灰色)

plt.show()

四、关键函数说明(新手必记)

函数作用常用参数
plt.scatter(x, y)绘制散点图(核心)x = 自变量数据,y = 因变量数据;color = 点的颜色;marker = 点的样式(o = 圆形、s = 方块、^= 三角形);s = 点的大小;edgecolors = 点的边缘颜色
plt.title()设置图表标题字符串(如 "学习时间与成绩关联")
plt.xlabel()设置 x 轴标签字符串(如 "学习时间(小时)")
plt.ylabel()设置 y 轴标签字符串(如 "成绩(分)")
plt.grid()添加网格线(可选)True = 显示,alpha = 透明度(0-1 之间)
plt.show()显示图表

五、常见应用场景

散点图的核心是 “探索关联”,适合这些场景:

  1. 变量关系分析:身高与体重、温度与冰淇淋销量、广告投入与销售额
  2. 异常值检测:大部分点集中在某区域,个别远离的点可能是异常数据(比如某学生学习 8 小时但成绩仅 50 分)
  3. 数据分布观察:点的密集程度反映数据集中情况(比如中等学习时间的学生数量最多)
  4. 多组数据对比:用不同颜色 / 样式的点,在同一图中展示多组变量关系(比如男生 vs 女生的学习时间与成绩)