在 Python 中,**数据可视化(Data Visualization)**是数据分析的重要环节,它帮助我们通过图形直观理解数据。通常可以按照 变量数量划分为:
- 单变量分析(Univariate)
- 双变量分析(Bivariate)
- 多变量分析(Multivariate)
常用库包括:
- Matplotlib
- Seaborn
- Pandas
- Plotly
下面按 从单变量到多变量系统讲解。
一、单变量可视化(Univariate)
单变量分析关注 一个变量的分布情况。
常见问题:
- 数据是否偏态?
- 是否有异常值?
- 数据范围?
1 直方图(Histogram)
展示数值分布。
import matplotlib.pyplot as plt
import seaborn as sns
data = [1,2,2,3,3,3,4,5,6,7]
sns.histplot(data, bins=5)
plt.show()
特点:
- 观察分布
- 判断正态性
2 箱线图(Boxplot)
展示:
- 中位数
- 四分位数
- 异常值
sns.boxplot(x=data)
plt.show()
箱线图结构:
最小值 — Q1 — 中位数 — Q3 — 最大值
3 密度图(KDE)
显示 概率密度分布。
sns.kdeplot(data)
plt.show()
优点:
- 平滑显示数据分布
4 条形图(Categorical)
适合 分类变量。
sns.countplot(x=["A","A","B","C","B"])
二、双变量可视化(Bivariate)
双变量分析用于 研究两个变量之间关系。
例如:
- 身高 vs 体重
- 学习时间 vs 成绩
1 散点图(Scatter Plot)
最常见的关系图。
x = [1,2,3,4]
y = [2,3,5,7]
plt.scatter(x,y)
plt.show()
用途:
- 查看相关性
- 查看聚类
2 回归图(Regression Plot)
在散点图上添加回归线。
sns.regplot(x=x,y=y)
用于:
- 观察线性关系
3 折线图(Line Plot)
用于 时间序列数据。
plt.plot(x,y)
示例:
- 股票价格
- 温度变化
4 分组箱线图
比较不同类别的分布。
sns.boxplot(x="gender", y="salary", data=df)
三、多变量可视化(Multivariate)
多变量分析用于 三个或以上变量之间关系。
1 气泡图(Bubble Chart)
散点图 + 第三变量大小。
plt.scatter(x,y,s=size)
变量表示:
- x → 变量1
- y → 变量2
- size → 变量3
2 热力图(Heatmap)
用于展示 矩阵关系。
常见:
- 相关系数矩阵
import pandas as pd
corr = df.corr()
sns.heatmap(corr, annot=True)
适合:
- 特征相关性分析
3 Pairplot(多变量关系图)
来自:
Seaborn
sns.pairplot(df)
效果:
- 每个变量之间散点图
- 对角线为分布图
4 FacetGrid(分面图)
将数据按类别分组展示。
sns.FacetGrid(df, col="gender")
四、可视化流程(推荐)
一个完整的数据可视化流程:
Step1 数据读取
import pandas as pd
df = pd.read_csv("data.csv")
Step2 单变量分析
sns.histplot(df["age"])
Step3 双变量分析
sns.scatterplot(x="age", y="salary", data=df)
Step4 多变量分析
sns.heatmap(df.corr())
五、常见可视化类型总结
| 类型 | 变量数量 | 图表 |
|---|---|---|
| 单变量 | 1 | 直方图、箱线图 |
| 双变量 | 2 | 散点图、折线图 |
| 多变量 | 3+ | 热力图、pairplot |
六、可视化库对比
| 库 | 特点 |
|---|---|
| Matplotlib | 基础绘图库 |
| Seaborn | 统计图更美观 |
| Plotly | 交互式图表 |
| Bokeh | Web可视化 |
七、可视化最佳实践
1 先看分布
先做:
Histogram
Boxplot
2 再看关系
Scatter
Regression
3 再看整体
Heatmap
Pairplot
总结
Python 数据可视化通常遵循:
单变量 → 双变量 → 多变量
常用组合:
Pandas + Matplotlib + Seaborn
这也是数据分析中最常见的技术栈。
如果你愿意,我可以继续给你整理一套 Python 数据可视化 20 种图表大全(含完整代码),里面包括:
- 折线图
- 面积图
- 雷达图
- Sankey 图
- 3D 可视化
很多数据科学面试和项目都会用到。