2025/06/26

matplotlib 畫圖中文字變方框怎麼辦?

在 Python 程式裡常會用 matplotlib 畫圖,但很困擾的是中文都會變成方框框。

matplotlib 畫的圖中文字變方框框
圖、matplotlib 畫的圖中文字變方框框

這是因為 matplotlib 預設字體是 DejaVu Sans,所以無法顯示中文。既然是預設字體的問題,那我們就改一下字型。要改用字型顯示也不難,只要在畫圖指令前用 rcParams 指定中文字體即可。

import matplotlib.pyplot as plt
    
# 指定字型為 SimHei
plt.rcParams['font.family'] = ['SimHei']

# 這招在 google colab 行不通
# google colab 要用蔡炎龍老師提供的方法

指定中文字型後,matplotlib 就可以正確的顯示中文了。

指定字型後 matplotlib 中文顯示正常
圖、指定字型後 matplotlib 中文顯示正常

不過我們不滿足,希望除了 SimHei 字型外,還能使用更多自己喜歡的字體,要怎麼辦?

嗯,這就要看你想在哪個平台的 matplotlib 顯示中文了,方法都不太一樣。

  • Excel
  • Anaconda Jupyter Notebook
  • Google Colab

2025/06/15

如果評量總是強調平均分,你是否錯過了學生真正的努力軌跡?

期末考後,幾個老師聊到一位成績僅達及格邊緣的學生。有人說:「他的平均才 61,這樣也能算進步嗎?」

但如果我們拉出一張趨勢圖,會發現他期初成績是 38。短短三個月內,他整整提升了 23 分。而我們的評量系統——依舊只回報一個靜止的平均數字。

我們是不是過度信任平均值,以至於錯過了學生真正努力的軌跡?

一個「平均值」的幻覺

  • 平均值會隱藏「變化趨勢」:
    兩位學生平均都是 70,但一位從 90 掉到 50,另一位從 50 漲到 90。你還覺得他們一樣嗎?
  • 平均值不代表「典型」:
    在偏態分布的資料中,平均值往往並不接近大多數學生的真實表現。
  • 平均值缺乏情境性:
    一個寒假輔導班讓學生進步 20 分,和另一位平穩維持 80 分,這兩者是否該用相同的標準評價?

轉向「成長曲線」思維

與其只看最終平均,不如也考慮「變化率」與「學習斜率」。你可以嘗試以下 Excel 技巧讓評量更有脈絡感: