文件
開啟 Studio

教學

資料視覺化

本頁內容7

finlab.plot 提供一系列圖表工具,讓你更方便洞察市場數據。每個函式都回傳 plotly 圖表,完整參數見 finlab.plot。

想看什麼用哪個市場
K 線與技術指標plot_tw_stock_candles()、plot_candles()台股、任何價格序列
產業板塊的漲跌與資金plot_tw_stock_treemap()台股
持股的財務指標分級plot_tw_stock_radar()台股、美股
本益比位階plot_tw_stock_river()台股
策略報酬比較StrategyReturnStats台股、美股
多策略部位StrategySunburst台股

畫 K 線與技術指標

畫出 K 線圖,疊加多條 EMA 均線,下方再加 STOCH、RSI 等技術指標子圖。

plot_tw_stock_candles() 會自動下載台股的股價:

from finlab.plot import plot_tw_stock_candles
from finlab.data import indicator

stock_id = '2330'
recent_days = 1000
adjust_price = False
resample = "D"

overlay_func = {
    'ema_5': indicator('EMA', timeperiod=5),
    'ema_10': indicator('EMA', timeperiod=10),
    'ema_20': indicator('EMA', timeperiod=20),
    'ema_60': indicator('EMA', timeperiod=60),
}

k, d = indicator('STOCH')
rsi = indicator('RSI')
technical_func = [{'K': k, 'D': d}, {'RSI': rsi}]

plot_tw_stock_candles(
    stock_id,
    recent_days,
    adjust_price,
    resample,
    overlay_func=overlay_func,
    technical_func=technical_func,
)

adjust_price=False 表示用未還原股價計算。

看產業板塊的漲跌與資金

巢狀樹狀圖(treemap)把台股依市場與產業分類,可以顯示多維度資料並和圖表互動。下面以成交金額作為方塊面積、期間報酬率作為顏色:

from finlab.plot import plot_tw_stock_treemap

plot_tw_stock_treemap(
    start='2021-07-01', end='2021-07-02', area_ind="turnover", item="return_ratio"
)

也可以用市值作為面積、本益比作為顏色,搭配 clip 與 color_continuous_scale 參數自訂視覺效果:

from finlab.plot import plot_tw_stock_treemap

plot_tw_stock_treemap(
    start='2021-07-01',
    end='2021-07-02',
    area_ind="market_value",
    item="price_earning_ratio:本益比",
    clip=(0, 50),
    color_continuous_scale='RdBu_r',
)

比較持股的財務指標

雷達圖比較持股組合的指標分級特性。每個指標會在所有股票之間排名、切成幾個級距,所以單位不同的指標也能放在一起比。支援 bar_polar、line_polar、scatter_polar 等模式。

bar_polar 模式

不指定 feats 時使用預設的財務指標:

from finlab.plot import plot_tw_stock_radar

portfolio = ['1101', '2330', '8942', '6263']

plot_tw_stock_radar(portfolio=portfolio, mode="bar_polar")

line_polar 模式:自訂財務指標

用 feats 指定要比較的財務指標,cut_bins 調整分級數量:

from finlab.plot import plot_tw_stock_radar

feats = [
    'fundamental_features:營業毛利率',
    'fundamental_features:營業利益率',
    'fundamental_features:稅後淨利率',
    'fundamental_features:現金流量比率',
    'fundamental_features:負債比率',
]

plot_tw_stock_radar(portfolio=["9939"], feats=feats, mode="line_polar", cut_bins=8)

看本益比在歷史區間的位置

河流圖用 PE 或 PB 的最高與最低值繪製,判斷指標目前所處的位階:

from finlab.plot import plot_tw_stock_river

plot_tw_stock_river(
    stock_id='2330', start='2015-1-1', end='2022-7-1', mode='pe', split_range=10
)

比較策略與大盤的報酬

StrategyReturnStats 比較你上傳的策略在一段期間內的報酬,並和對照指數比較:

不指定 benchmark_return 時,對照指數是台股的發行量加權股價報酬指數:

from finlab.plot import StrategyReturnStats

stats = StrategyReturnStats('2025-01-01', '2025-12-31')
stats.plot_strategy_last_return().show()
stats.plot_strategy_creturn().show()

看多個策略的部位配置

StrategySunburst 把你在 FinLab 雲端的多個策略部位,依台股產業畫成旭日圖,方便監控多策略的部位配置。只適用台股策略。

from finlab.plot import StrategySunburst

strategies = StrategySunburst()
strategies.plot().show()

下一步

  • finlab.plot 每個圖表函式的完整參數與更多範例。
  • 技術指標 用 data.indicator() 計算 TA-Lib 指標。
  • 因子分析 用 plot_line 畫出因子報酬與 IC 的走勢。
  • 歷史回測 回測報告裡的報酬曲線與交易圖表。
↑↓ 選擇 Enter 開啟 Esc 關閉