在完成資料整理後,我們將焦點轉向年度違規土地面積排行。透過長條圖,我們可以清楚地看到各縣市年度違規土地的總量差異,並快速辨識出違規面積較大的縣市。
繪製長條圖這種排行方式不僅展示了年度違規總量,也為後續分析提供了參考基準,例如研究高違規面積縣市的違規類型、政策執行或土地管理情況。透過長條圖,我們還可以觀察縣市間的相對差距,例如第一名縣市的違規面積可能是第二名的兩倍以上。這種可視化方式對政策制定者具有參考價值,可以針對違規面積較高的縣市制定專門的監督措施,或者調整資源分配。
程式操作上,我們使用pandas對年度總計進行排序,再使用matplotlib繪製長條圖。圖表中每個縣市的高度代表其違規面積大小,清楚呈現縣市之間的差距和分布情況。
import pandas as pd
import matplotlib.pyplot as plt
# 設定中文字型
plt.rcParams["font.family"] = "Heiti TC"
plt.rcParams["axes.unicode_minus"] = False
# 讀取 CSV,跳過第二列中文標題
df = pd.read_csv("IT_land_violation/land_violation.csv", skiprows=[1])
# 將月份欄位轉為數字
months = [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec",
]
df[months] = df[months].apply(pd.to_numeric, errors="coerce")
# 去掉「總計」列,並確保縣市名稱為字串
df = df[df["County_Area_Hectare"] != "總計"]
df["County_Area_Hectare"] = df["County_Area_Hectare"].astype(str)
# 按年度總計排序
df_sorted = df.sort_values("Total_Area_Hectare", ascending=False)
# 繪製長條圖
plt.figure(figsize=(12, 6))
plt.bar(
df_sorted["County_Area_Hectare"], df_sorted["Total_Area_Hectare"], color="skyblue"
)
plt.xticks(rotation=45, ha="right")
plt.ylabel("違規土地面積 (公頃)")
plt.title("各縣市年度違規土地面積排行")
plt.tight_layout()
plt.show()