輕鬆學習 Python |從基礎到應用,成為初級資料分析師
# Python資料視覺化
使用套件:Matplotlib
## 🎨 Matplotlib 套件
Matplotlib 是 Python 中最常用的 資料視覺化套件,用來畫圖、呈現資料趨勢與結果。
### 1. 繪製基本圖表
例如:折線圖、長條圖、散佈圖、圓餅圖。
```
# 例:折線圖
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 15, 25]
plt.plot(x, y)
plt.title("Line Chart")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
```

### 2. 繪製客製化統計圖表
箱形圖、直方圖、多個子圖
可調整顏色、樣式、字體、刻度等。
```
# 例:直方圖
import numpy as np
import matplotlib.pyplot as plt
plt.hist(np.random.randn(1000), bins=30)
plt.title("Histogram")
plt.show()
```

# 範例
## 股市預測程式
一、 程式架構解析 (Architecture Breakdown)程式碼邏輯呈現線性的 ETL + Analysis + Modeling + Visualization 流程:
1. 資料獲取與清洗 (Data ETL)
* 工具: yfinance, pandas
* 動作: 下載台積電 (2330.TW) 過去 5 年數據,並只保留 Adj Close (還原權值收盤價)。
* 目的: 建立分析基底。
*選用還原權值是因為台積電有配息,若只看純收盤價會造成股價「假性下跌」,影響報酬率計算。*
2. 統計特徵工程 (Statistical Feature Engineering)
* 工具: numpy, pandas
* 動作:
* 計算 對數報酬率 (Log Returns):$ln(P_t / P_{t-1})$。總報酬率可以簡單地通過將各個時間段的對數報酬率相加得到!
* 計算 年化漂移率 (Drift, $\mu$):預期未來的平均成長速度。股價走勢的關鍵參數,代表了在排除隨機波動後,資產在一年內的平均期望報酬。$\mu$ 用於估計資產的長期回報潛力。
* 計算 年化波動率 (Volatility, $\sigma$):股價上下震盪的劇烈程度。$\sigma$ 是金融領域中最常用的風險衡量指標。波動率越高,股價的變動幅度越大,潛在的風險也越高。
* 目的: 將雜亂的股價數據,轉化為數學模型可以理解的參數(平均值與標準差)。
4. 確定性模型:線性回歸 (Deterministic Model - Linear Regression)
* 工具: sklearn.linear_model
* 動作: 將「日期」作為 X,「股價」作為 Y,畫出一條直線。
* 目的: 提供一個「如果不考慮波動,長期趨勢平均會怎麼走」的基準線 (Baseline)。這代表的是一種絕對的趨勢預測。
5. 隨機性模型:蒙地卡羅模擬 (Stochastic Model - Monte Carlo & GBM)
* 工具: numpy
* 動作: 使用 幾何布朗運動 (Geometric Brownian Motion, GBM) 公式。公式:$S_t = S_{t-1} \cdot e^{(\mu - \frac{\sigma^2}{2})dt + \sigma\sqrt{dt}Z_t}$利用亂數產生器生成 1000 條可能的平行宇宙路徑。
* 目的: 這是核心預測部分。它承認「未來是不確定的」,因此不只給一個價格,而是給出一個機率分佈範圍(90% 信賴區間)。
6. 視覺化 (Visualization)
* 工具: matplotlib
* 動作: 將歷史數據、線性趨勢、模擬的平均路徑、悲觀與樂觀區間畫在同一張圖上。