世界各国の人口当たりCOVID-19患者数/死者数推移を可視化した(追記有)

 タイトル通りですが、各国(や地域*1 )の人口当たりCOVID-19患者数と死者数を可視化しました。
 単に患者数や死者数を集計した場合、現在では人口の多いアメリカが突出しており、他国の比較がまともにできないグラフになります。
 このため、患者数や死者数を人口で割った値をプロットしました。GIFではサイズが大きいのでYoutubeにアップロードしています。
 
(2020/4/20追記ここから)

最新の推移(毎日更新)

www.youtube.com
↑毎日日次で自動生成するようにしました。最新の映像はプレイリストに順次追加されます。(現状では朝9時に前日分までの推移が公開されるはずです。)
(2020/4/20追記ここまで)
 

各国の人口1万人辺りのCOVID-19患者数推移(2020-04-18時点)


各国の人口1万人辺りのCOVID-19患者数推移(2020-04-18時点)
※スケールの最小値(灰色)は0.01で固定ですが、最大値(赤色)はCOVID-19の蔓延に伴い経時的に値が大きくなっていることに注意してください。
 

各国の人口100万人辺りのCOVID-19死者数推移(2020-04-18時点)


各国の人口100万人辺りのCOVID-19死者数推移(2020-04-18時点)
※スケールの最小値(灰色)は0.01で固定ですが、最大値(赤色)はCOVID-19の蔓延に伴い経時的に値が大きくなっていることに注意してください。
 

データソース

EU open data portal
https://opendata.ecdc.europa.eu/covid19/casedistribution/csv

を集計してプロット

  • 人口データは上記ファイルのpopData2018列*2を使用
  • 各日までの各国の患者数(元ファイルではcases列)をサマリした値を人口で割った値を1万倍して人口1万人辺り患者数を算出
  • 各日までの各国の死者数(元ファイルではdeaths列)をサマリした値を人口で割った値を100万倍して人口100万人辺り死者数を算出

 

(参考)生成に使った主要なソフトウェア

  • SQLite3
    • EU open dataのCSVデータの集計に使用
  • Google Charts
    • Map chartのプロットに使用
  • Google Chrome
    • HeadlessでGoogle Chartsのレンダリングに使用
    • Ubuntuで同様の作業を行う場合にはchromium-browserを使うのですが、今回はWindows(WSL)環境で作業しておりheadlessでもchromiumがコアダンプして使えませんでしたので、WSLからWindowsネイティブのchrome.exeをキックして使用

 SQLiteで各日毎にサマッた値を吐き出して、Google Chartsを使ったHTMLを生成して、Headless ChromechromiumレンダリングImageMagickで720p映像のフレーム画像に整形して、ffmpegエンコードして映像化、youtube-uploadで投稿。この一連の流れをスクリプト叩くとcronで日次で実行されるようにしました。
 日本の各都道府県についても同様に可視化したかったのですが、Google Chartsが日本の都道府県単位での描画に対応していないことと、CSVのような機械処理できるフォーマットで都道府県別時系列データが公開されていないと思われるため、諦めました。

 現時点(2020/4/18)のデータでは日本は相対的に欧米諸国ほど酷い状態ではありませんが、多くの人々が罹患したり命を落としています。決して楽観視せず、公的機関の指示に従い感染予防対策を怠らないようにしましょう。
 



以上。

*1:関東とかそういう地域ではなく、政治的理由で国と呼ばない地域、以降は単に国と表記。

*2:2018年人口と思われる