零基础上手Python数据分析 (22)案例实战]之利用 Matplotlib Seaborn 进行电商销售数据可视化分析
写在前面
—— 图表为刃,洞察先行!综合运用 Pandas、Matplotlib 与 Seaborn,点亮数据价值
本篇通过一个完整的案例实战,体验如何将数据分析与数据可视化紧密结合,让冰冷的数据转化为生动、直观、富有洞察力的视觉故事!
案例目标:
本篇博客将延续我们在第 17 篇案例中使用的模拟电商销售数据,利用 Matplotlib 和 Seaborn 对经过 Pandas 处理和分析的数据进行可视化呈现。我们的目标是:
- 可视化关键业务指标 (KPIs) 的变化趋势。
- 直观比较不同类别(如产品、地区)的表现。
- 探索变量之间的潜在关系。
- 展示数据的分布特征。
- 最终生成一组能够清晰传达业务洞察的可视化图表。
为什么需要可视化实战?
- 巩固技能: 将前面学习的 Pandas 数据处理、Matplotlib 基础、Seaborn 统计绘图等知识点串联起来,在实践中加深理解。
- 提升应用能力: 学习如何根据具体的分析问题选择合适的图表,并进行有效的定制,将理论知识转化为解决实际问题的能力。
- 体验完整流程: 感受从数据准备、分析到可视化呈现的完整数据分析流程,培养数据驱动的思维方式。
- 掌握沟通利器: 学会用图表清晰、有效地沟通分析结果,让你的数据分析工作更具影响力。
在本案例中,我们将重点运用 Matplotlib 和 Seaborn,并结合 Pandas 的数据处理能力,一步步将分析结果转化为有意义的图表。 准备好,让我们一起用代码和图表,让这份电商销售数据“活”起来!
🔄 一、数据回顾与准备
我们首先需要重新加载或准备在第 17 篇案例中处理得到的合并后的 DataFrame df_merged
。为了让本篇博客可以独立运行,我们在此处重新执行数据准备和合并的关键步骤。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 设置 Seaborn 样式 (可选,让图表更好看)
sns.set_theme(style="whitegrid", palette="pastel")# --- 重新创建模拟数据 ---
# 订单数据
orders_data = {'OrderID': ['O001', 'O002', 'O003', 'O004', 'O005', 'O006', 'O007', 'O008', 'O009', 'O010'],'CustomerID': ['C001', 'C002', 'C001', 'C003', 'C002', 'C004', 'C001', 'C003', 'C002', 'C005'],'ProductID': ['P001', 'P002', 'P003', 'P001', 'P004', 'P002', 'P001', 'P005', 'P002', 'P003'],'OrderDate': ['2023-10-01', '2023-10-01', '2023-10-02', '2023-10-02', '2023-10-03', '2023-10-03', '2023-10-04', '2023-10-04', '2023-10-05', '2023-10-05'],'Quantity': [2, 1, 1, 3, 2, 1, 4, 1, 2, 1],'Status': ['Completed', 'Completed', 'Shipped', 'Completed', 'Completed', 'Shipped', 'Completed', 'Completed', 'Completed', 'Cancelled']
}
orders = pd.DataFrame(orders_data)# 客户数据
customers_data = {'CustomerID': ['C001', 'C002', 'C003', 'C004', 'C006'],'CustomerName': ['Alice', 'Bob', 'Charlie', 'David', 'George'],'City': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu'],'Age': [25