Source code for src.plotting.task_plot_rki_incidences
import matplotlib.pyplot as plt
import pandas as pd
import pytask
import seaborn as sns
from src.config import BLD
from src.config import PLOT_END_DATE
from src.config import PLOT_SIZE
from src.config import PLOT_START_DATE
from src.config import POPULATION_GERMANY
from src.config import SRC
from src.plotting.plotting import style_plot
@pytask.mark.depends_on(
{
"rki": BLD / "data" / "processed_time_series" / "rki.pkl",
"plotting.py": SRC / "plotting" / "plotting.py",
}
)
@pytask.mark.produces(
{
[docs] "spring": BLD / "figures" / "data" / "official_case_numbers_in_spring.pdf",
"overall": BLD / "figures" / "data" / "official_case_numbers.pdf",
}
)
def task_plot_spring_incidences(depends_on, produces):
rki = pd.read_pickle(depends_on["rki"])
rki_n_cases = rki.groupby("date")["newly_infected"].sum()
rki_incidence = rki_n_cases * 100_000 / POPULATION_GERMANY
smoothed_incidence = rki_incidence.rolling(7, center=True).sum()
smoothed_incidence = smoothed_incidence.dropna()
plot_data = smoothed_incidence.loc[PLOT_START_DATE:PLOT_END_DATE]
fig, ax = plt.subplots(figsize=PLOT_SIZE)
sns.lineplot(x=plot_data.index, y=plot_data, linewidth=2.5)
fig, ax = style_plot(fig, ax)
fig.savefig(produces["overall"])
plt.close()
spring_start = pd.Timestamp("2021-02-01")
spring_data = plot_data.loc[spring_start:]
fig, ax = plt.subplots(figsize=(10, 4))
sns.lineplot(x=spring_data.index, y=spring_data, linewidth=2.5)
fig, ax = style_plot(fig, ax)
fig.savefig(produces["spring"])
plt.close()