From 7880d13202f406cbdadc77e17e31bd594a84cfde Mon Sep 17 00:00:00 2001 From: Benedikt Bastin Date: Sun, 31 Jan 2021 21:11:20 +0100 Subject: [PATCH] feat: Added new bar plot with two bars instead of stacked bars --- dashboard_template.xhtml | 15 +++++++++++- plot.py | 50 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/dashboard_template.xhtml b/dashboard_template.xhtml index 5b3b82f..ffc632d 100644 --- a/dashboard_template.xhtml +++ b/dashboard_template.xhtml @@ -191,11 +191,24 @@
Abbildung 4: - Tägliche Impfrate (Erst- und Zweitimpfung)
+ Tägliche Impfrate (Erst- und Zweitimpfung übereinander)
Download als PNG Download als PDF
+
+ + + +
+ Abbildung 4: + Tägliche Impfrate (Erst- und Zweitimpfung nebeneinander)
+ Download als PNG + Download als PDF +
+
diff --git a/plot.py b/plot.py index ceaba82..f9b7a44 100644 --- a/plot.py +++ b/plot.py @@ -12,6 +12,8 @@ import locale import os.path import shutil +from matplotlib.dates import date2num + locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') site_folder = 'site/' @@ -332,7 +334,7 @@ def plot_vaccination_bar_graph_total_time(): plt.title( - 'Tägliche Impfrate (Erst- und Zweitimpfung)\n' + 'Tägliche Impfrate (Erst- und Zweitimpfung übereinander)\n' 'Datenquelle: RKI, Stand: {}. Erstellung: {}, Ersteller: Benedikt Bastin, Lizenz: CC BY-SA 4.0\n'.format( print_stand, print_today ) @@ -362,6 +364,52 @@ def plot_vaccination_bar_graph_total_time(): plot_vaccination_bar_graph_total_time() +def plot_vaccination_bar_graph_total_time_two_bars(): + + archive_plot_filename = '{}/vaccination_bar_graph_total_time_two_bars'.format(archive_folder) + latest_plot_filename = '{}/vaccination_bar_graph_total_time_two_bars'.format(site_folder) + + #if os.path.isfile(archive_plot_filename + '.pdf'): + #print('Plot {} already exists'.format(archive_plot_filename)) + #return + + fig, ax = plt.subplots(1) + + + plt.title( + 'Tägliche Impfrate (Erst- und Zweitimpfung nebeneinander)\n' + 'Datenquelle: RKI, Stand: {}. Erstellung: {}, Ersteller: Benedikt Bastin, Lizenz: CC BY-SA 4.0\n'.format( + print_stand, print_today + ) + ) + + ax.grid() + + date_numbers = date2num(dates) + + ax.bar(date_numbers - 0.2, data_first_vaccination['daily'], width=0.4, label='Tägliche Erstimpfungen', color='blue') + ax.bar(date_numbers + 0.2, data_second_vaccination['daily'], width=0.4, label='Tägliche Zweitimpfungen', color='lightblue') + + ax.set_ylim([0, np.max(data_first_vaccination['daily']) + np.max(data_second_vaccination['daily'])]) + + ax.legend(loc='upper left') + ax.xaxis_date() + ax.get_yaxis().get_major_formatter().set_scientific(False) + + ax.set_xlabel('Datum') + ax.set_ylabel('Tägliche Impfungen') + + + plt.savefig(archive_plot_filename + '.pdf') + plt.savefig(archive_plot_filename + '.png') + plt.savefig(latest_plot_filename + '.pdf') + plt.savefig(latest_plot_filename + '.png') + plt.close() + + print('Created plot {} as pdf and png'.format(archive_plot_filename)) + +plot_vaccination_bar_graph_total_time_two_bars() + def render_dashboard(): dashboard_filename = 'site/index.xhtml' dashboard_archive_filename = 'site/archive/{}/index.xhtml'.format(filename_stand)