
在 Python 的視覺化世界裡,Matplotlib 是所有人的爸爸 (功能最強大,但語法較繁瑣),而 Seaborn 則是更懂審美的兒子 (語法簡潔,預設樣式美觀)。
在實務上,我們通常會「混用」這兩者:用 Seaborn 快速畫出統計圖,用 Matplotlib 微調細節。
1. Matplotlib 基礎
安裝:
pip install matplotlib seaborn
import matplotlib.pyplot as plt
import numpy as np
# 產生資料
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 畫圖
plt.figure(figsize=(10, 6)) # 設定畫布大小
plt.plot(x, y, label='Sine Wave', color='blue', linestyle='--')
# 裝飾
plt.title("My First Plot")
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.legend() # 顯示圖例
plt.grid(True) # 顯示格線
# 顯示
plt.show()
2. Seaborn:統計繪圖神器
Seaborn 能直接吃 Pandas DataFrame,並自動處理許多統計細節。
import seaborn as sns
import pandas as pd
# 載入內建的 Titanic 資料集
df = sns.load_dataset('titanic')
# 1. 長條圖 (Bar Plot):分析生還率 (survived) 與艙等 (class) 的關係
sns.barplot(data=df, x='class', y='survived')
plt.title("Survival Rate by Class")
plt.show()
# 2. 散佈圖 (Scatter Plot):不同年齡與票價的分佈
sns.scatterplot(data=df, x='age', y='fare', hue='survived')
plt.title("Age vs Fare")
plt.show()
3. 常見圖表類型
直方圖 (Histogram)
用來觀察資料的「分佈」情況 (例如年齡分佈)。
sns.histplot(data=df, x='age', kde=True, bins=30)
# kde=True 會畫出一條平滑的密度曲線
熱力圖 (Heatmap)
用來觀察變數之間的「相關性」。
# 計算相關係數矩陣 (只取數值欄位)
corr = df.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap='coolwarm')
# annot=True 顯示數字
# cmap='coolwarm' 設定紅藍配色
plt.title("Correlation Matrix")
4. 儲存圖片
畫好的圖可以直接存檔,用於報告或論文。
plt.savefig("my_chart.png", dpi=300, bbox_inches='tight')
# dpi=300 解析度
# bbox_inches='tight' 裁切掉多餘的白邊
5. 總結
- Matplotlib: 畫布的底層控制 (標題、軸標籤、存檔)。
- Seaborn: 快速畫出漂亮且帶有統計意義的圖表 (長條圖、散佈圖、熱力圖)。
學會畫圖後,接下來我們要踏入更令人興奮的領域——讓 Python 擁有大腦,我們將學習如何串接 OpenAI API,讓你的程式具備 AI 能力!
延伸閱讀:
- Matplotlib Gallery (超多範例程式碼)
- Seaborn Gallery (漂亮的統計圖表範例)