图表选择可视化指南:散点图:看关系与分布(深度版)
展示两个连续变量的相关/分布关系,发现线性、非线性、离群点。
分类:📈 基础图 适用:相关性分析、拟合前后对比、聚类前的分布观察
一、这个图适合谁(适用场景)
- 相关性分析
- 拟合前后对比
- 聚类前的分布观察
二、图表结构要素
- X/Y 均为连续量
- 点大小/颜色可编码第三维
- 可叠加拟合线
三、可视化的底层逻辑
散点图用"二维位置"这一双高精度通道,同时编码两个连续变量的联合分布,是发现关系结构(线性、非线性、聚类、离群)最直接、信息密度最高的工具。叠加拟合线后,它进一步变成"关系假设的视觉检验"——肉眼就能判断线性相关强弱、是否存在非线性拐弯、是否有异常点拉动趋势。颜色/大小作为"预注意属性"可编码第三维而不增加认知负担。核心思想:位置通道同时承载 X 与 Y,把"相关吗、怎么相关、有没有例外"三件事一次性交给读者;但务必记住——散点揭示的是关联而非因果,斜率被离群点拉动时会严重误导,需配合残差诊断。
四、视觉编码与感知推导
线性相关量化:皮尔逊相关系数
只捕捉线性关系;非线性结构(如抛物线)的 可能接近 0 却绝非无关——这正是必须看散点形状而非只报 的原因。
最小二乘拟合:叠加线的斜率
残差 ,其分布形态(是否随 变大)用于检验模型假设。
过绘制(overplotting)控制:当样本量 大、点密度 高,用透明度 使局部叠加可被感知:
应随 减小(如 量级),避免所有点糊成一块,丢失分布结构。
离群影响:OLS 对离群敏感(残差平方被放大);Cook 距离 大的点会剧烈拉动 ,须单独标注并决定"保留/剔除/用稳健回归"。
五、怎么画(步骤)
- 两个变量都连续才用散点。
- 加拟合线(线性/loess)直观看趋势。
- 用颜色/大小表达分组或第三变量。
- 标注离群点并解释(是真异常还是数据错)。
- 大样本用透明度避免重叠成块。
六、何时用 / 何时不用 / 常见丑图
- 何时用:『X 和 Y 有没有关系』『分布啥样』。
- 何时不用:一维分布 → 直方图;类别对比 → 柱状。
- 常见丑图:点全黑重叠、无拟合线、坐标轴无单位。
七、常见坑
- 把相关当因果
- 大样本不透明重叠
- 忽略离群点
八、画图自检清单
- 两变量连续
- 有拟合/趋势线
- 分组编码清晰
- 离群已解释
九、配套资源与搭配
- 预测类问题怎么选方法
- Python 数据可视化模板
- 分类与聚类怎么选
本指南由 MCM520 资料站自动生成(深度版),配套论文图表规范与可视化模板可在资源页下载。
十、实战案例——Python 绘制 + 图效果
散点图最擅长展示两个连续变量之间的关系。
案例场景:某城市 15 个样本的房屋面积与成交价格数据。
从散点图可以直观看出——面积越大房价越高(正相关),且是否呈线性。
完整代码(Python + matplotlib)
import matplotlib.pyplot as plt
area = [60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130]
price = [72, 78, 85, 90, 98, 105, 112, 120, 128, 135, 142, 150, 158, 165, 172]
plt.figure(figsize=(8, 4))
plt.scatter(area, price, color='#2563eb', s=60, alpha=0.7, edgecolors='white', linewidth=1)
# 加回归线
import numpy as np
z = np.polyfit(area, price, 1)
p = np.poly1d(z)
x_line = np.linspace(55, 135, 100)
plt.plot(x_line, p(x_line), '--', color='#dc2626', linewidth=2, alpha=0.6, label='线性回归线')
plt.xlabel('面积 /㎡', fontsize=12)
plt.ylabel('房价 /万', fontsize=12)
plt.title('房价与面积散点图', fontsize=14, fontweight='bold')
plt.legend(fontsize=11)
plt.grid(alpha=0.3)
plt.tight_layout()
plt.show()
运行效果图
本指南由 MCM520 资料站生成,配套 Python 代码可直接运行。