記事を書くのは久しぶりになります。最近自宅のキーボードを新調してウキウキしているベーです。
今回はPythonの勉強も兼ねて、日々ニュースで見かけるコロナ感染者数のデータからグラフを作ってみました。
感染者数のデータについて
今回は、NHKの新型コロナウィルス特設サイトからダウンロードしたデータを使用します。
https://www3.nhk.or.jp/news/special/coronavirus/data-widget
グラフの作成方法について
勉強ということで、今回は王道のライブラリ pandas + matplotlib で作成します。
実際にやってみた
サイトからダウンロードしたCSVを読み込んで、matplotlibでグラフとして書き出します。
せっかくなので全国と愛知県それぞれで作りました。
折線グラフ
# 全国 df_all = df.copy() df_all = df_all.groupby('日付').sum() df_all = df_all.loc[:,['各地の感染者数_1日ごとの発表数']] df_all = df_all.rename(columns={'各地の感染者数_1日ごとの発表数':'全国の感染者数'}) df_all.tail(30).plot(figsize=(10, 5))

# 愛知 df_aichi = df.copy() df_aichi = df_aichi[df_aichi.都道府県名 == '愛知県'] df_aichi = df_aichi.set_index('日付') df_aichi = df_aichi.loc[:,['各地の感染者数_1日ごとの発表数']] df_aichi = df_aichi.rename(columns={'各地の感染者数_1日ごとの発表数': '愛知県の感染者数'}) df_aichi = df_aichi.sort_index() df_aichi.tail(get_count).plot(figsize=(10, 5))

地図に色付け
ただCSVから折線グラフを書くだけだと味気なかったので、加えて日本地図に色を塗ってみました。
2021/06/20の感染者数が多い県ほど色が濃くなっています。
# japanmapで画像生成 cmap = plt.get_cmap('Reds') norm = plt.Normalize(vmin=df_yest.各地の感染者数_1日ごとの発表数.min(), vmax=df_yest.各地の感染者数_1日ごとの発表数.max()) fcol = lambda x: '#' + bytes(cmap(norm(x), bytes=True)[:3]).hex() plt.subplots(figsize=(8,8)) plt.colorbar(plt.cm.ScalarMappable(norm, cmap)) plt.imshow(picture(df_yest.各地の感染者数_1日ごとの発表数.apply(fcol)));

終わりに
今回はpythonでグラフを書いてみました。
自宅のMacでまだ対応していないライブラリがあり、環境構築の面で一番苦戦しました…
地図を簡単に扱えるライブラリがあることなど、新しく覚えられたこともあるので、今後ももっと複雑なデータの処理など挑戦していきたいと思います。
記事内のソースは抜粋して記載してますので、興味がある方は↓JupyterLabのpdfファイルをご覧ください。