Skip to content

Data Visualization

FinLab provides a suite of charting tools to help you gain deeper insight into market data.

Technical Indicator Charts

Use plot_tw_stock_candles to draw candlestick charts, with support for overlaying multiple EMA lines and technical indicator subplots such as STOCH and RSI.

from finlab.plot import plot_tw_stock_candles
from talib import abstract
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
)

Return and Turnover Treemap

The nested treemap displays multi-dimensional data with interactive features, showing Taiwan stock data organized by industry classification.

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"
)

P/E Ratio and Market Cap Treemap

You can also use market capitalization as the area indicator and P/E ratio as the color indicator, with clip and color_continuous_scale parameters to customize the visual effect.

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'
)

Financial Indicator Radar Chart

Compare the indicator rankings of a portfolio's holdings. Supports bar_polar, line_polar, and scatter_polar modes.

bar_polar Mode

from finlab.plot import plot_tw_stock_radar

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

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

line_polar Mode (Custom Financial Indicators)

You can specify particular financial indicators for comparison and adjust the number of 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
)

P/E River Chart

Uses the highest and lowest P/E or P/B values to draw a river chart, helping determine where the current indicator stands relative to its historical range.

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
)

Strategy Position Sunburst Chart

Monitor multi-strategy position allocations with a sunburst chart visualization.

from finlab.plot import StrategySunburst

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