上一篇
Python绘制散点图的两种方法详解 | 数据可视化教程
- Python
- 2025-07-29
- 309
Python绘制散点图的两种方法详解
使用matplotlib和seaborn创建专业散点图
为什么使用散点图?
散点图是数据可视化中最常用的图表之一,用于展示两个变量之间的关系。它可以清晰地显示:
- 两个变量之间的相关性(正相关、负相关或无相关)
- 数据点的分布情况
- 异常值的识别
- 数据集群的存在
在Python中,我们主要使用matplotlib和seaborn这两个库来创建散点图。
方法一:使用Matplotlib
matplotlib是Python中最基础、最广泛使用的绘图库,提供了高度灵活的绘图功能。
安装Matplotlib
pip install matplotlib
基础散点图代码
import matplotlib.pyplot as plt
import numpy as np
# 生成示例数据
np.random.seed(42)
x = np.random.rand(50)
y = 2 * x + np.random.normal(0, 0.1, 50)
# 创建散点图
plt.figure(figsize=(8, 6))
plt.scatter(x, y, color='blue', alpha=0.7, edgecolors='w', s=80)
# 添加标题和标签
plt.title('基础散点图示例', fontsize=14)
plt.xlabel('X轴变量', fontsize=12)
plt.ylabel('Y轴变量', fontsize=12)
# 添加网格
plt.grid(True, linestyle='--', alpha=0.6)
# 显示图表
plt.show()
Matplotlib散点图特点
- 高度可定制化 - 可以调整每个元素的样式
- 支持多种标记形状和颜色映射
- 可以轻松添加回归线、注释等元素
- 是其他高级可视化库的基础
方法二:使用Seaborn
seaborn是基于matplotlib的高级可视化库,提供更美观的默认样式和更简洁的API。
安装Seaborn
pip install seaborn
高级散点图代码
import seaborn as sns
import pandas as pd
# 创建示例数据
data = {
'X': np.random.randn(100),
'Y': np.random.randn(100),
'Category': np.random.choice(['A', 'B', 'C'], 100),
'Size': np.random.randint(10, 100, 100)
}
df = pd.DataFrame(data)
# 创建散点图
plt.figure(figsize=(9, 6))
sns.scatterplot(
data=df,
x='X',
y='Y',
hue='Category', # 按类别着色
size='Size', # 按大小区分
sizes=(30, 200), # 大小范围
alpha=0.8,
palette='viridis'
)
# 添加标题和样式
plt.title('高级散点图示例', fontsize=14)
sns.despine() # 移除上方和右侧边框
plt.grid(axis='both', linestyle='--', alpha=0.6)
# 显示图例
plt.legend(title='类别', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()
Seaborn散点图优势
- 美观的默认样式和配色方案
- 轻松处理DataFrame数据结构
- 内置支持分类变量着色和分组
- 自动添加统计信息(如回归线)
- 简化了多变量数据可视化
两种方法对比
特性 | Matplotlib | Seaborn |
---|---|---|
学习曲线 | 较陡峭 | 较平缓 |
默认样式 | 基础 | 美观现代 |
API简洁性 | 较低 | 较高 |
多变量支持 | 需手动实现 | 内置支持 |
统计图表集成 | 无 | 有(如回归图) |
定制灵活性 | 非常高 | 中等(可结合matplotlib) |
选择建议:
- 对于简单散点图或需要高度定制的场景,使用matplotlib
- 对于多变量探索、美观的默认输出或快速原型,使用seaborn
- 在实际项目中,通常结合使用两者:用seaborn创建基础图表,再用matplotlib进行细节调整
散点图进阶技巧
1. 添加回归线
# 使用seaborn添加回归线
sns.regplot(x='X', y='Y', data=df,
scatter_kws={'alpha':0.4},
line_kws={'color':'red'})
2. 气泡图(大小映射)
# 使用matplotlib创建气泡图
plt.scatter(x, y, s=sizes, c=colors,
alpha=0.5, cmap='viridis')
plt.colorbar() # 添加颜色条
3. 分类散点图
# 使用seaborn绘制分类散点图
sns.catplot(x='category', y='value',
hue='sub_category', data=df,
kind='strip', height=6, aspect=1.5)
© 2023 Python数据可视化教程 | 散点图绘制方法详解
本文由YuwenJie于2025-07-29发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20256778.html
发表评论