Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # Browse to this URL and click download link under heatmap:
- # https://coronavirus.data.gov.uk/details/cases?areaType=nation&areaName=England
- import json, datetime
- import matplotlib.pyplot as plt
- import matplotlib.dates as mdates
- import matplotlib.colors as colors
- with open ("data.json", "r") as fs:
- alldata = json.load(fs)
- datablock = list(reversed(alldata["data"]))
- caselist = [x["newCasesBySpecimenDateAgeDemographics"] for x in datablock]
- dates = [x["date"] for x in datablock]
- dateobj = [datetime.datetime.strptime(d,'%Y-%m-%d').date() for d in dates]
- agelist = [x["age"] for x in caselist[0]]
- removelist = ["00_59", "60+", "unassigned"]
- agelist = [a for a in agelist if a not in removelist]
- ageticks = [a.replace("_", "-") for a in agelist]
- rollingrate = []
- for daylist in caselist:
- daydict = []
- for agedict in daylist:
- if agedict["age"] in agelist:
- daily = agedict["rollingRate"]
- daydict.append(daily)
- rollingrate.append(daydict)
- rollingmap = list(zip(*rollingrate))
- fig, ax = plt.subplots()
- cmesh = ax.pcolormesh(dateobj, ageticks, rollingmap,
- cmap="gist_heat", norm=colors.PowerNorm(gamma=0.65), shading='auto')
- ax.xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))
- ax.xaxis.set_major_locator(mdates.MonthLocator())
- fig.autofmt_xdate()
- cbar = fig.colorbar(cmesh, fraction=0.08)
- cbar.cmap.set_gamma(0.5)
- fig.set_size_inches(10, 5)
- top = "ENGLAND - Covid 19 Heatmap - Cases per 100,000 in each age range per day"
- ax.set_title(top, fontsize=13)
- fig.tight_layout()
- fig.savefig("heatmap2.png")
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment