feat: New detail view plot for vaccination done date plot
This commit is contained in:
parent
b02d05a1d5
commit
8e99015d77
1 changed files with 50 additions and 8 deletions
58
plot.py
58
plot.py
|
@ -757,23 +757,16 @@ def plot_vaccination_done_dates():
|
|||
)
|
||||
d = data_first_vaccination
|
||||
|
||||
#print(d['cumulative'])
|
||||
#print(np.sum(d['daily']))
|
||||
|
||||
#print((einwohner_deutschland - d['cumulative'])[:-1] - d['to_be_vaccinated'])
|
||||
|
||||
|
||||
days_remaining_daily = np.ceil((einwohner_deutschland * 0.7 - d['cumulative']) / (d['mean_vaccination_rates_daily']))
|
||||
days_remaining_rolling = np.ceil((einwohner_deutschland * 0.7 - d['cumulative']) / (d['vaccination_rates_daily_rolling_average']))
|
||||
|
||||
dates_daily = [today + datetime.timedelta(days) for days in days_remaining_daily]
|
||||
dates_rolling = [today + datetime.timedelta(days) for days in days_remaining_rolling.dropna()]
|
||||
|
||||
#print(dates_rolling)
|
||||
|
||||
ax.set_xlim(start_of_reporting_date, today)
|
||||
ax.set_ylim(today, today + datetime.timedelta(int(np.max(days_remaining_rolling) * 1.05)))
|
||||
ax.axhline(target_date_for_herd_immunity - datetime.timedelta(21), label='Impfziel Ende Sommer')
|
||||
ax.add_patch(Rectangle((datetime.date(2021, 4, 6), today), today - datetime.date(2021, 4, 6), target_date_for_herd_immunity - today, edgecolor='darkgrey', lw=3, fill=False, label='Detailansicht (s.u.)'))
|
||||
|
||||
ax.plot(dates, dates_daily, label='Durchschnitt Gesamt', linewidth=0.5)
|
||||
ax.plot(dates[6:], dates_rolling, label='Durchschnitt 7 Tage', linewidth=2)
|
||||
|
@ -793,6 +786,51 @@ def plot_vaccination_done_dates():
|
|||
|
||||
plot_vaccination_done_dates()
|
||||
|
||||
def plot_vaccination_done_dates_detail():
|
||||
|
||||
plot_name = 'vaccination_done_dates_detail'
|
||||
if not check_recreate_plot(plot_name):
|
||||
return
|
||||
|
||||
fig, ax = plt.subplots(1)
|
||||
|
||||
|
||||
plt.title(
|
||||
'Lin. Extrapolation der Erstimpfungen bis 70 % der Bevölkerung anhand der durchschn. Impfrate (Detail, Datum, Gesamt und 7 Tage)\n'
|
||||
'Datenquelle: RKI, Stand: {}. Erstellung: {}, Ersteller: Benedikt Bastin, Lizenz: CC BY-SA 4.0\n'.format(
|
||||
print_stand, print_today
|
||||
)
|
||||
)
|
||||
d = data_first_vaccination
|
||||
|
||||
days_remaining_daily = np.ceil((einwohner_deutschland * 0.7 - d['cumulative']) / (d['mean_vaccination_rates_daily']))
|
||||
days_remaining_rolling = np.ceil((einwohner_deutschland * 0.7 - d['cumulative']) / (d['vaccination_rates_daily_rolling_average']))
|
||||
|
||||
dates_daily = [today + datetime.timedelta(days) for days in days_remaining_daily]
|
||||
dates_rolling = [today + datetime.timedelta(days) for days in days_remaining_rolling.dropna()]
|
||||
|
||||
ax.set_xlim(datetime.date(2021, 4, 6), today)
|
||||
ax.set_ylim(today, target_date_for_herd_immunity)
|
||||
ax.axhline(target_date_for_herd_immunity - datetime.timedelta(21), label='Impfziel Ende Sommer')
|
||||
|
||||
ax.plot(dates, dates_daily, label='Durchschnitt Gesamt', linewidth=0.5)
|
||||
ax.plot(dates[6:], dates_rolling, label='Durchschnitt 7 Tage', linewidth=2)
|
||||
|
||||
ax.grid(True)
|
||||
|
||||
|
||||
ax.legend(loc='upper right')
|
||||
|
||||
ax.set_xlabel('Datum')
|
||||
ax.set_ylabel('Datum, an dem 70 % erreicht sind')
|
||||
|
||||
add_annotations(ax)
|
||||
|
||||
save_plot(plot_name)
|
||||
plt.close()
|
||||
|
||||
plot_vaccination_done_dates_detail()
|
||||
|
||||
def render_dashboard():
|
||||
dashboard_filename = 'site/index.xhtml'
|
||||
dashboard_archive_filename = 'site/archive/{}/index.xhtml'.format(filename_stand)
|
||||
|
@ -880,6 +918,10 @@ def render_dashboard():
|
|||
'index': 12,
|
||||
'filename': 'vaccination_done_dates',
|
||||
'caption': 'Lineare Extrapolation bis 70 % der Bevölkerung anhand der Erstimpfungen der durchschnittlichen Impfrate (Datum, Gesamt und 7 Tage)'
|
||||
},{
|
||||
'index': 13,
|
||||
'filename': 'vaccination_done_dates_detail',
|
||||
'caption': 'Lineare Extrapolation bis 70 % der Bevölkerung anhand der Erstimpfungen der durchschnittlichen Impfrate (Datum, Gesamt und 7 Tage)'
|
||||
}
|
||||
]
|
||||
).dump('site/index.xhtml')
|
||||
|
|
Loading…
Reference in a new issue