Data analysis

練習專案二:拿破崙征俄戰爭 4


結果分析(Results)


成品介紹(Final Product Overview)

  • 軍隊移動路徑(厚度代表兵力)
    • 軍隊從 法國 → 俄國莫斯科(前進:淺棕色),再 撤退回法國(回程:黑色)。
    • 線條的寬度表示軍隊人數的變化,可以看到撤退時士兵數量急劇減少

  • 地理資訊(地圖與地名)
    • X 軸與 Y 軸對應軍隊在歐洲的 經緯度。

  • 氣溫變化(折線圖)
    • 圖下方用折線圖標示 撤退期間的氣溫,顯示 12 月時軍隊面臨極寒(-30°C 以下)。


數據分析(Data Analysis)

  1. 軍隊規模變化(士兵數量驟減)
  • 入侵與撤退的對比:
    • 棕色線代表法軍入侵俄國時的路線,黑色線代表撤退時的路線。
    • 線條的 寬度代表軍隊的規模,可以看到撤退時士兵數量急劇減少。
    • 進入莫斯科時約 10-12 萬人,但撤退到俄羅斯邊境時僅剩數千人,顯示軍隊幾乎全滅。
  • 死亡率極高
    • 撤退結束、回到法國時,僅存不足 2 萬人,死亡率超過 95%。這樣的損失規模在戰爭史上極為罕見

  1. 氣溫對軍隊的影響
  • 底部的折線圖顯示撤退過程中的氣溫變化:
    • 可觀察到,隨著氣溫越來越低,士兵人數迅速減少
    • -9°C(11 月初)時,軍隊已減至 3.7 萬人,顯示氣候對士兵存活率的嚴重影響。
    • 到 12 月時,氣溫下降至 -30°C 以下,加速了軍隊的崩潰。

  1. 路線與戰略決策分析
  • 錯誤的進攻計畫
    • 拿破崙的軍隊 深入俄國境內,直到莫斯科,但俄軍選擇不正面交戰,而是採取「焦土政策」,撤退並燒毀物資,讓法軍無法獲得補給。
  • 撤退的困境
    • 撤退時的路線與進攻時不同,部分原因是避開俄軍圍堵並嘗試撤回較容易獲得補給的地區(如波蘭),但由於敵軍騷擾、後勤崩潰,仍然失敗。
    • 當軍隊撤退時,俄軍開始騷擾攻擊,加上寒冷天氣,使士兵死亡率更高。

總結(Conclusion)

  • 主要失敗因素
    • 補給不足(深入俄國後沒有足夠物資)。
    • 氣候極端(士兵死於低溫)。
    • 俄軍戰術(焦土政策 + 騷擾戰)。

專案復原(Project Replication)

語言與模組(Languages & Modules)

  • dependencies:
    • python 3.12
    • matplotlib 3.8
    • basemap 1.4
    • pandas 2.2

建立 environment.yml(Creating environment.yml)

目的重現專案環境。

REM 方法1 (當前目錄建立environment.yml)
conda env export > environment.yml 

REM 方法2 (指定目錄建立environment.yml)
conda env export > D:\minard_clone\environment.yml

如何重現(How to Reproduce)

  • 安裝 Miniconda
  • 使用 environment.yml 建立新環境。
    conda env create -f environment.yml
    
  • 建立資料 minard_clone/
  • 使用 VScode 將資料夾新增到工作區。
  • data/ 資料夾中 minard.txt 檔案置放於工作目錄中的 data/ 資料夾。
  • 啟動環境並執行 python create_minard_db.py 就能在 data/ 資料夾中建立 minard.db
  • 啟動環境並執行 python plot_with_basemap.py 就能生成 minard_clone.png