寫在前面
—— 圖表為刃,洞察先行!綜合運用 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