PythonによるPDFの各操作のまとめ記事をつくりました

Pythonでコロナ陽性者数と死亡者数の黒背景グラフを簡単にだしてみる

このページからデータをお借りしました。

参考 新型コロナウイルス(COVID-19)感染症の対応について内閣官房新型コロナウイルス感染症対策推進室

新規陽性者数と死亡者数のグラフ

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import dates as mdates
import datetime
import requests
from pprint import pprint

# グラフの背景を黒にしておく
plt.style.use('dark_background')

# 陽性患者数のデータ
response = requests.get('https://data.corona.go.jp/converted-json/covid19japan-npatients.json')
npatients_data = response.json()

# 死亡者数のデータ
response = requests.get('https://data.corona.go.jp/converted-json/covid19japan-ndeaths.json')
ndeaths_data = response.json()

fig, ax = plt.subplots()

# 感染者数のグラフ
date = []
adpatients = []
npatients = []
for data in npatients_data:
    date.append(datetime.datetime.strptime(data['date'], '%Y-%m-%d'))
    adpatients.append(data['adpatients'])
    npatients.append(data['npatients'])

ndeaths = []
for data in ndeaths_data:
    ndeaths.append(data['ndeaths'])

ax.plot(date, adpatients, label='adpatients')
#ax.plot(date, npatients, label='npatients')
ax.plot(date, ndeaths, label='ndeaths')
ax.set_xlabel('日付(年-月)', fontname="MS Gothic")
ax.set_ylabel('(人)', fontname="MS Gothic")
ax.set_title('新型コロナウイルス新規陽性者数と累計死亡者数', fontname="MS Gothic")

# 月毎の目盛
dates = mdates.MonthLocator()
dates_fmt = mdates.DateFormatter('%Y-%m')
ax.xaxis.set_major_locator(dates)
ax.xaxis.set_major_formatter(dates_fmt)
ax.legend()

plt.xticks(rotation=90)
plt.tight_layout()
plt.show()

こんな感じになります。

コロナ陽性者数と死亡者数のグラフ

スケールが違ったので横並びでグラフにしてみる。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import dates as mdates
import datetime
import requests
from pprint import pprint

# グラフの背景を黒にしておく
plt.style.use('dark_background')

# 陽性患者数のデータ
response = requests.get('https://data.corona.go.jp/converted-json/covid19japan-npatients.json')
npatients_data = response.json()

# 死亡者数のデータ
response = requests.get('https://data.corona.go.jp/converted-json/covid19japan-ndeaths.json')
ndeaths_data = response.json()

fig, ax = plt.subplots(1, 2, figsize=(10,6))

# 陽性者数のグラフ
date = []
npatients = []
for data in npatients_data:
    date.append(datetime.datetime.strptime(data['date'], '%Y-%m-%d'))
    npatients.append(data['npatients'])

ax[0].plot(date, npatients, color='y')  # label='npatients'
ax[0].set_xlabel('日付(年-月)', fontname="MS Gothic")
ax[0].set_ylabel('感染者数(人)', fontname="MS Gothic")
ax[0].set_title('新型コロナウイルス累計陽性者数', fontname="MS Gothic")
# 月毎の目盛
ax[0].set_xticks(date)
ax[0].set_xticklabels(date, rotation=90, size="small")
dates = mdates.MonthLocator()
dates_fmt = mdates.DateFormatter('%Y-%m')
ax[0].xaxis.set_major_locator(dates)
ax[0].xaxis.set_major_formatter(dates_fmt)

# 死亡者数のグラフ
date = []
ndeaths = []
for data in ndeaths_data:
    date.append(datetime.datetime.strptime(data['date'], '%Y-%m-%d'))
    ndeaths.append(data['ndeaths'])

ax[1].plot(date, ndeaths, color=(1, 0.2, 0.2))  # label='ndeaths'
ax[1].set_xlabel('日付(年-月)', fontname="MS Gothic")
ax[1].set_ylabel('死亡者数(人)', fontname="MS Gothic")
ax[1].set_title('新型コロナウイルスによる累計死亡者数', fontname="MS Gothic")
# 月毎の目盛
ax[1].set_xticks(date)
ax[1].set_xticklabels(date, rotation=90, size="small")
dates = mdates.MonthLocator()
dates_fmt = mdates.DateFormatter('%Y-%m')
ax[1].xaxis.set_major_locator(dates)
ax[1].xaxis.set_major_formatter(dates_fmt)
plt.tight_layout()
plt.show()

こんな感じになります。

ただプロットしただけのグラフだけど、黒背景だとちょっとそれっぽくみえる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です