繪製 K 線圖
以下示範使用 **`mplfinance`** 繪製 K 線圖。它是建立在 Matplotlib 上、專門用來繪製金融圖表的套件,比直接使用已移除的 `matplotlib.finance` 更方便。
## 1. 安裝套件
```bash
pip install matplotlib mplfinance pandas
```
## 2. 簡單範例
```python
import pandas as pd
import mplfinance as mpf
# 建立 OHLC(開、高、低、收)資料
data = {
"Date": [
"2024-01-02",
"2024-01-03",
"2024-01-04",
"2024-01-05",
"2024-01-08",
],
"Open": [100, 102, 101, 105, 104],
"High": [103, 104, 105, 107, 106],
"Low": [ 98, 100, 99, 103, 101],
"Close": [102, 101, 104, 104, 105],
"Volume": [1200, 1500, 1800, 1300, 1600],
}
# 建立 DataFrame,並將日期設為索引
df = pd.DataFrame(data)
df["Date"] = pd.to_datetime(df["Date"])
df.set_index("Date", inplace=True)
# 繪製 K 線圖
mpf.plot(
df,
type="candle", # candle 表示 K 線圖
style="yahoo", # 使用 Yahoo 風格
volume=True, # 顯示成交量
title="簡單 K 線圖",
ylabel="價格",
ylabel_lower="成交量",
figsize=(10, 6),
show_nontrading=False
)
```
## 主要資料欄位
K 線圖通常需要以下欄位:
- `Open`:開盤價
- `High`:最高價
- `Low`:最低價
- `Close`:收盤價
- `Volume`:成交量,可選
其中:
- 收盤價高於開盤價,通常顯示為上漲 K 線
- 收盤價低於開盤價,通常顯示為下跌 K 線
- K 線實體表示開盤價與收盤價
- 上下影線表示最高價與最低價
若要改成折線圖,只需將:
```python
type="candle"
```
改為:
```python
type="line"
```
若想使用傳統台股常見的紅漲綠跌風格,也可以自行設定:
```python
market_colors = mpf.make_marketcolors(
up="red",
down="green",
edge="inherit",
wick="inherit",
volume="inherit"
)
custom_style = mpf.make_mpf_style(
marketcolors=market_colors
)
mpf.plot(df, type="candle", style=custom_style, volume=True)
```
相關學習地圖、教學課程
Python 資料工程