昨天把樹莓派 Pi 3A+ 安裝妥當後, 利用 ChatGPT 協作快速寫了一個 twstock_data.py 套件來模擬 yfinance 的股票資料下載功能 (因為 Pi 3A+ 的 Python 3.7 太舊了, yfinance 雖能安裝卻不能用), 結果非常滿意, 可以直接丟給 kbar 套件在 Windows 上畫 K 線圖, 參考 :
上周將 kbar 發佈到 PyPI 時有在 Colab (CentOS 系) 與 Ubuntu (Debian) 這兩種 Linux 平台測試 kbar 套件, 都能自動安裝與註冊繁體中文字型後成功繪製含有中文的 K 線圖, 今天想說剛好可以拿 P3 A+ 來測試看看 kbar 是否也能順利地在樹莓派的 Raspbian OS (也是 Debian 系) 上繪製有中文的 K 線圖? 關於 kbar 套件參考 :
由於發布到 PyPI 上的 kbar 套件要求 Python 3.9+, 所以 Pi 3A+ 肯定無法用 pip3 install 來安裝 kbar, 所以我是將 kbar.py 原始碼連同 twstock_data.py 直接傳送到 Pi 3A+ 的使用者目錄下. 開啟 Python3 交談環境, 執行下列程式碼 :
from kbar import KBar
import twstock_data as td
df=td.download('0050.TW', start='2025-07-14', end='2025-08-14')
df.columns=df.columns.map(lambda x: x[0]) # 改成舊版單層索引
kb=KBar(df)
kb.plot(title='台灣五十(0050.TW)', volume=True)
結果如下 :
Python 3.7.3 (/usr/bin/python3)
>>> from kbar import KBar
Matplotlib is building the font cache; this may take a moment.
>>> import twstock_data as td
>>> df=td.download('0050.tw', start='2025-07-14', end='2025-08-14')
>>> df.columns=df.columns.map(lambda x: x[0])
>>> df.columns
Index(['Adj Close', 'Close', 'High', 'Low', 'Open', 'Volume'], dtype='object')
>>> kb=KBar(df)
Linux 環境偵測到,嘗試安裝 Noto CJK 字型...
偵測到 Linux 環境,嘗試安裝 Noto CJK 字型...
Noto CJK 字型安裝完成
>>> kb.plot(title='台灣五十(0050.TW)', volume=True)
設定字型為: Noto Sans CJK JP
使用指定字型: Noto Sans CJK JP
字型候選清單: ['Noto Sans CJK JP', 'DejaVu Sans', 'Liberation Sans']
libEGL warning: DRI2: failed to authenticate
qt5ct: using qt5ct plugin
雖然出現一個 warning, 但仍成功地畫出有中文的 K 線圖 :
我詢問 ChatGPT 為何出現這些訊息, 回覆如下 :
- libEGL warning 是 GPU 驅動 / OpenGL 的警告,不影響正常畫圖。
- qt5ct: using qt5ct plugin 是 Qt 的 UI 設定提示,可以忽略。
所以 kbar 套件目前至少在三種 Linux 環境下都能正常工作.
另外我也參考之前的筆記, 在 Pi 3A+ 下載正黑體的 ttf 來安裝註冊 :
這樣在使用 kbar 或 matplotlib 時也可以指定用正黑體顯示中文.

沒有留言 :
張貼留言