问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数据可视化 - 使用 matplotlib 与 seaborn

创作时间:
作者:
@小白创作中心

数据可视化 - 使用 matplotlib 与 seaborn

引用
CSDN
1.
https://blog.csdn.net/mmc123125/article/details/143884439

数据可视化是数据分析中的关键环节。通过直观的图表,我们可以更高效地发现数据中的规律和异常点。Python提供了强大的可视化工具,其中matplotlib和seaborn是两款最受欢迎的库。本文将从基础介绍到实战案例,全面讲解如何使用这两个库进行数据可视化。

1. 引言:为什么需要数据可视化

数据可视化是数据分析中的关键环节。通过直观的图表,我们可以更高效地发现数据中的规律和异常点。Python提供了强大的可视化工具,其中matplotlibseaborn是两款最受欢迎的库。

2. matplotlib 与 seaborn 的基础介绍

2.1 matplotlib 简介

matplotlib是 Python 最基础的绘图库,支持多种图表类型和自定义样式。

安装方式

pip install matplotlib  

优点

  • 功能强大,适用于多种复杂场景。
  • 自由度高,支持完全自定义。

缺点

  • 绘图代码较复杂。

2.2 seaborn 简介

seaborn是基于 matplotlib 的高级绘图库,专注于统计数据的可视化,提供了更高层次的绘图接口。

安装方式

pip install seaborn  

优点

  • 默认样式美观。
  • 专注于统计图表,使用简单。

缺点

  • 自定义能力有限(但足够应对大多数场景)。

3. 使用 matplotlib 进行基础绘图

3.1 折线图

折线图适用于展示趋势数据。

import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘图
plt.plot(x, y, marker='o')
plt.title('Prime Numbers Trend')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.grid()
plt.show()
  

3.2 柱状图

柱状图适合对比不同类别的数据。

# 数据
categories = ['A', 'B', 'C', 'D']
values = [5, 7, 3, 8]
# 绘图
plt.bar(categories, values, color='skyblue')
plt.title('Category Comparison')
plt.ylabel('Values')
plt.show()
  

3.3 散点图

散点图用于展示两组数据之间的关系。

# 数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 7]
# 绘图
plt.scatter(x, y, color='green')
plt.title('Scatter Plot Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
  

4. 使用 seaborn 提升可视化效果

4.1 分类数据可视化

seaborn.barplot可以轻松绘制带误差线的柱状图。

import seaborn as sns
import pandas as pd
# 示例数据
data = pd.DataFrame({
    'Category': ['A', 'B', 'C', 'D'],
    'Values': [5, 7, 3, 8]
})
# 绘图
sns.barplot(x='Category', y='Values', data=data, palette='viridis')
plt.title('Seaborn Bar Plot')
plt.show()
  

4.2 统计关系可视化

通过seaborn.pairplot查看多个变量之间的关系。

# 示例数据
from sklearn.datasets import load_iris
iris = sns.load_dataset('iris')
# 绘制关系图
sns.pairplot(iris, hue='species', palette='husl')
plt.show()
  

5. 实战案例:分析电子商务数据

以下是一个简单的电子商务数据可视化示例。

5.1 数据加载与清洗

假设有一份 CSV 文件,包含以下列:

  • date
    :日期

  • category
    :商品类别

  • sales
    :销售额

加载数据

import pandas as pd
data = pd.read_csv('ecommerce_data.csv')
data['date'] = pd.to_datetime(data['date'])  # 转换日期格式
  

5.2 用户行为数据可视化

  1. 销售额趋势图
# 按月统计销售额
data['month'] = data['date'].dt.month
monthly_sales = data.groupby('month')['sales'].sum()
# 绘制折线图
plt.plot(monthly_sales.index, monthly_sales.values, marker='o', color='blue')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.grid()
plt.show()
  
  1. 类别销售额分布
# 按类别统计
category_sales = data.groupby('category')['sales'].sum().reset_index()
# 绘制柱状图
sns.barplot(x='category', y='sales', data=category_sales, palette='mako')
plt.title('Sales by Category')
plt.xticks(rotation=45)
plt.show()
  

6. 总结:绘图库的选择与组合

  • matplotlib:适合需要高度自定义的复杂图表。
  • seaborn:用于快速生成美观的统计图表。

无论是简单的趋势展示还是复杂的数据分析,合理搭配这两款工具都能让数据“活”起来。下一步,结合交互式可视化工具(如 Plotly 或 Dash)进一步提升图表表现力!

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号