今天要進一步挑戰人口金字塔與老化趨勢分析。人口金字塔是一種水平長條圖,通常用來顯示不同年齡層男女比例。雖然我們的資料只分為三大年齡區段(0–14、15–64、65+),仍然可以畫出一個簡化版的人口金字塔。
實作方法是把男性數值設定為負數,女性為正數,然後用barh水平條形圖畫出來。這樣左邊就代表男性,右邊代表女性,整體形成對稱的金字塔形狀。如果把不同年份的金字塔並排,就能看出人口結構隨時間的變化,例如青壯年比例下降與老年人口增加的趨勢。
import pandas as pd
import matplotlib.pyplot as plt
# 讀取整理過的資料(已經重新命名過欄位)
df = pd.read_csv("IT_population_age/IT_population_age_clean.csv")
# 篩選某一年度,例如 2020
year_to_plot = 2020
df_year = df[df["year"] == year_to_plot].iloc[0]
# -----------------------------
# 1. 人口金字塔(單一年份示範)
# -----------------------------
# 年齡層
age_groups = ["0-14", "15-64", "65+"]
male = [
-df_year["male_0_14"],
-df_year["male_15_64"],
-df_year["male_65_plus"],
] # 男性負值
female = [df_year["female_0_14"], df_year["female_15_64"], df_year["female_65_plus"]]
y = range(len(age_groups))
plt.barh(y, male, color="blue", label="Male")
plt.barh(y, female, color="red", label="Female")
plt.yticks(y, age_groups)
plt.xlabel("Percentage (%)")
plt.title(f"Population Pyramid - New Taipei {year_to_plot}")
plt.legend()
plt.show()
除了靜態比較,也可以用折線圖追蹤「65歲以上人口比例」的變化。做法是把男性 65+與女性 65+相加,得到總比例,再依年份繪製折線。從圖中我們可以看到新北市逐年增加的高齡化現象,並進一步推測未來社會結構的挑戰。
import pandas as pd
import matplotlib.pyplot as plt
# 讀取整理過的資料(已經重新命名過欄位)
df = pd.read_csv("IT_population_age/IT_population_age_clean.csv")
# 篩選某一年度,例如 2020
year_to_plot = 2020
df_year = df[df["year"] == year_to_plot].iloc[0]
# -----------------------------
# 2. 老化趨勢(65 歲以上比例折線圖)
# -----------------------------
df["old_ratio_total"] = df["male_65_plus"] + df["female_65_plus"]
plt.plot(df["year"], df["old_ratio_total"], marker="o", color="purple")
plt.xlabel("Year")
plt.ylabel("Percentage (%)")
plt.title("Trend of Population 65+ in New Taipei")
plt.grid(True)
plt.show()
透過這兩種視覺化,我們不僅能更直觀理解資料,也能提出社會議題的討論,例如:高齡化社會帶來的醫療需求、勞動力下降問題,以及平均壽命差異對政策規劃的啟發。今天的成果算是資料分析中一個很有代表性的里程碑。