最近想到在 colab 上如何用 plt matplotlib 劃出K線圖且有中文?

重點是需要先知道目前這主機上有的中文字形
否則就需要額外下載

額外下載可能有連結失效的問題

所以我傾向用現成的

 

from matplotlib.font_manager import fontManager
for i in sorted(fontManager.get_font_names()):
    print(i)

目前我在 colab 上面的輸出是:

 

 

DejaVu Sans
DejaVu Sans Display
DejaVu Sans Mono
DejaVu Serif
DejaVu Serif Display
Humor Sans
Liberation Mono
Liberation Sans
Liberation Sans Narrow
Liberation Serif
STIXGeneral
STIXNonUnicode
STIXSizeFiveSym
STIXSizeFourSym
STIXSizeOneSym
STIXSizeThreeSym
STIXSizeTwoSym
Taipei Sans TC Beta
cmb10
cmex10
cmmi10
cmr10
cmss10
cmsy10
cmtt10

發現有一個 "Taipei Sans TC Beta" 台北黑體Taipei Sans TC 繁體中文 可以直接使用
注意! 這邊這個字形不一定會有,沒有中文字形就需要自行下載與載入

 

不知道是哪一個熱心的大大讓 google 放進去的
感謝拉~~

然後就可以指定style 進去 mplfinance 了

 

import matplotlib.pyplot as plt
import mplfinance as mpf

plt.rcParams['font.sans-serif'] = ['Taipei Sans TC Beta']
plt.rcParams['axes.unicode_minus'] = False
mpfStyle = mpf.make_mpf_style(base_mpf_style='yahoo', rc={'font.family':'Taipei Sans TC Beta'})
...
mpf.plot(stock_datas, type='candle', volume=True, style=mpfStyle, title=stock_code+" "+stock_name+":"+start_date+'~'+end_date, ylabel='Price', ylabel_lower='Volume')

 

重點就是在於指定 style 進去就可以

這樣就能顯示中文了


給大家參考囉~