文、意如
目標:
- 畫出每位同學的「總分柱狀圖」
- 畫出各科平均分數的「橫條圖」
安裝指令:pip install matplotlib
1. 分數比較「柱狀圖」範例(學生總分)

import pandas as pd
import matplotlib.pyplot as plt
# 設定中文字型(以微軟正黑體為例)
plt.rcParams['font.family'] = 'Microsoft JhengHei'
plt.rcParams['axes.unicode_minus'] = False
# 模擬資料
data = {
"姓名": ["小明", "小美", "阿志", "婷婷", "大雄"],
"數學": [78, 95, 62, 88, 55],
"英文": [85, 67, 90, 75, 60],
"自然": [90, 80, 70, 95, 58]
}
df = pd.DataFrame(data)
df["總分"] = df[["數學", "英文", "自然"]].sum(axis=1)
# 畫總分柱狀圖
plt.figure(figsize=(8, 5))
plt.bar(df["姓名"], df["總分"], color='skyblue')
plt.title("同學總分比較")
plt.xlabel("姓名")
plt.ylabel("總分")
plt.grid(axis='y', linestyle='--', alpha=0.5)
plt.tight_layout()
plt.show()
2. 各科平均「橫條圖」範例(各科難度比較)

import pandas as pd
import matplotlib.pyplot as plt
#中文字型設定
plt.rcParams['font.family'] = 'Microsoft JhengHei'
plt.rcParams['axes.unicode_minus'] = False
#建立資料
data = {
"姓名": ["小明", "小美", "阿志", "婷婷", "大雄"],
"數學": [78, 95, 62, 88, 55],
"英文": [85, 67, 90, 75, 60],
"自然": [90, 80, 70, 95, 58]
}
df = pd.DataFrame(data)
#計算各科平均
avg_scores = df[["數學", "英文", "自然"]].mean()
#繪製橫條圖
plt.figure(figsize=(6, 4))
plt.barh(avg_scores.index, avg_scores.values, color='darkorange')
plt.title("各科平均分數")
plt.xlabel("平均分數")
plt.xlim(0, 100)
plt.grid(axis='x', linestyle='--', alpha=0.4)
plt.tight_layout()
plt.show()
Yiru@Studio - 關於我 - 意如