iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
自我挑戰組

Python × 政府開放資料:30天數據探索與圖表呈現系列 第 16

Day 16 各縣市年度違規土地面積排行

  • 分享至 

  • xImage
  •  

在完成資料整理後,我們將焦點轉向年度違規土地面積排行。透過長條圖,我們可以清楚地看到各縣市年度違規土地的總量差異,並快速辨識出違規面積較大的縣市。

繪製長條圖這種排行方式不僅展示了年度違規總量,也為後續分析提供了參考基準,例如研究高違規面積縣市的違規類型、政策執行或土地管理情況。透過長條圖,我們還可以觀察縣市間的相對差距,例如第一名縣市的違規面積可能是第二名的兩倍以上。這種可視化方式對政策制定者具有參考價值,可以針對違規面積較高的縣市制定專門的監督措施,或者調整資源分配。

程式操作上,我們使用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()

https://ithelp.ithome.com.tw/upload/images/20250907/20178624PPHg2RZIWH.pnghttps://ithelp.ithome.com.tw/upload/images/20250907/20178624xOHPo5dtVs.png


上一篇
Day 15 讀取資料與結構檢查(月份數據整理)
系列文
Python × 政府開放資料:30天數據探索與圖表呈現16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言