Now using py files, for automation
[covid19.git] / uk_cases_and_deaths.py
diff --git a/uk_cases_and_deaths.py b/uk_cases_and_deaths.py
new file mode 100644 (file)
index 0000000..bb57ed6
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/env python
+# coding: utf-8
+# %%
+import itertools
+import collections
+import json
+import pandas as pd
+import numpy as np
+from scipy.stats import gmean
+import datetime
+
+import sqlalchemy
+
+import matplotlib as mpl
+import matplotlib.pyplot as plt
+plt.ioff()
+
+
+# %%
+connection_string = 'postgresql://covid:3NbjJTkT63@localhost/covid'
+
+
+# %%
+engine = sqlalchemy.create_engine(connection_string)
+
+
+# %%
+qstr = '''select uk_data.date
+    , uk_data.new_cases, uk_data_7.new_cases as new_cases_7
+    , uk_data.new_deaths, uk_data_7.new_deaths as new_deaths_7
+    from uk_data left outer join uk_data_7 using (date)
+    order by uk_data.date'''
+uk_data = pd.read_sql_query(qstr, engine,
+    index_col='date',
+    parse_dates = ['date'])
+
+# %%
+ax = uk_data.loc['2020-03-10':, ['new_cases', 'new_cases_7']].plot(
+    style={'new_cases': "#e4e4e4", 
+           'new_cases_7': 'k'},
+    figsize=(10, 8),
+    legend=False,
+    title="New cases and new deaths")
+
+# ax.set_title('Fraction of tests with positive results')
+ax.legend(['New cases', 'New cases, 7 day moving average'], loc='upper left')
+ax.set_ylabel('New cases')
+
+ax2 = ax.twinx()
+ax2 = uk_data.loc['2020-03-10':, ['new_deaths','new_deaths_7']].plot(
+    ax=ax2,
+    secondary_y=['new_deaths', 'new_deaths_7'],
+    style={'new_deaths': "#ffe4e4",
+           'new_deaths_7': 'r'},
+    legend=False)
+ax2.legend(['New deaths', 'New deaths, 7 day moving average'], loc='best')
+ax2.set_ylabel('New cases')
+plt.savefig('cases_and_deaths.png')
+
+
+# %%
+ax = uk_data.iloc[-60:][['new_cases', 'new_cases_7']].plot(
+    style={'new_cases': "#e4e4e4", 
+           'new_cases_7': 'k'},
+    figsize=(10, 8),
+    legend=False,
+    title="New cases and new deaths")
+
+# ax.set_title('Fraction of tests with positive results')
+ax.legend(['New cases', 'New cases, 7 day moving average'], loc='upper left')
+ax.set_ylabel('New cases')
+
+
+ax2 = ax.twinx()
+ax2 = uk_data.iloc[-60:][['new_deaths','new_deaths_7']].plot(
+    ax=ax2,
+    secondary_y=['new_deaths', 'new_deaths_7'],
+    style={'new_deaths': "#ffe4e4",
+           'new_deaths_7': 'r'},
+    legend=False)
+ax2.legend(['New deaths', 'New deaths, 7 day moving average'], loc='best')
+ax2.set_ylabel('New cases')
+plt.savefig('cases_and_deaths_last_60_days.png')
+
+
+# %%
+
+
+
+