import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib import rcParams

FONT_COLOR = '#595959'
SUSCEPTIBLE = '#6399f7'
INFECTIOUS = '#f56262'
REMOVED = '#83eb5e'

# rki data

rki_data_path = 'datasets/COVID-19-Todesfaelle_in_Deutschland/COVID-19-Todesfaelle_Deutschland.csv'

rki_data = pd.read_csv(rki_data_path)
rki_data['Berichtsdatum'] = pd.to_datetime(rki_data['Berichtsdatum'], errors='coerce')
specific_dates = rki_data[rki_data['Berichtsdatum'].dt.is_quarter_start]['Berichtsdatum']

rcParams['font.family'] = 'Comfortaa'
rcParams['font.size'] = 12

rcParams['text.color'] = FONT_COLOR
rcParams['axes.labelcolor'] = FONT_COLOR
rcParams['xtick.color'] = FONT_COLOR
rcParams['ytick.color'] = FONT_COLOR

slide3 = plt.figure(figsize=(12,6))
ax = slide3.add_subplot(111, facecolor='#dddddd', axisbelow=True)
ax.set_facecolor('xkcd:white')

ax.plot(rki_data['Berichtsdatum'], rki_data['Faelle_gesamt'], label='infections', c=INFECTIOUS, lw=3)
ax.plot(rki_data['Berichtsdatum'], rki_data['Todesfaelle_gesamt'], label='death cases', c=REMOVED, lw=3)

plt.yscale('log')
plt.ylabel('amount of poeple')
plt.xlabel('time')
plt.title('Accumulated cases (RKI Data)')
ax.yaxis.set_tick_params(length=0)

leg = plt.legend()

ax.yaxis.set_tick_params(length=0, which='both')
ax.xaxis.set_tick_params(length=0, which='both')
ax.grid(which='major', c='black', lw=0.2, ls='-')

for spine in ('top', 'right', 'bottom', 'left'):
    ax.spines[spine].set_visible(False)

plt.gca().set_xticks(specific_dates)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))

plt.gcf().autofmt_xdate(rotation=45, ha='center')

slide3.savefig('visualizations/slide3.png', transparent=True)
