#!/usr/bin/env gnuplot my_data = './COVID-19-Pandemie_-_IT_(Italien)_-_aktiv_Infizierte_(800px).csv' # Start und Ende ermitteln stats my_data every ::1 u (strptime("%Y-%m-%d",strcol(1))) nooutput print ' -----Stats-(Timestamp)----' print ' Start: ', strftime("%d. %B %Y",STATS_min) print ' Ende: ', strftime("%d. %B %Y",STATS_max) print ' --------------------------' # label fuer Grafikueberschrtft oben links mit den ermittelten Werten setzen set label 'Daten vom '.strftime("%d.%m.%y",STATS_min).' bis '.strftime("%d.%m.%y",STATS_max) at graph 0.03, graph 0.93 # als Workaround nehmen wir statt zweimal 'ylabel' hier zweimal 'label' # (bei multiplot ist es schwierig fuer alle Plots ein ylabel mit gleichen seitl. Einzug zu finden) set label "aktiv Infizierte" at screen 0.02,0.60 rotate by +90 center # input (Zeitformat und Separator definieren) # set timefmt "%Y-%m-%d" set datafile separator ';' # output # # Name der SVG-Datei set output './COVID-19-Pandemie_-_IT_(Italien)_-_aktiv_Infizierte_(800px).svg' unset key # keine Box fuer Legende set border 3 # Rahmen unten (Bit 1) und links (+ Bit 2) # Gitterlinienen per Hand setzen set style line 1 linetype rgb '#4f4f4f' linewidth 0.25 # Def. Major-grid set style line 2 linetype rgb '#9f9f9f' linewidth 0.20 # def. Minor-grid unset grid set grid noxtics nomxtics # Keine Gitterlinen an der 1. X-Achse (Monate) set grid x2tics nomx2tics # Gitterliniene an der 2. X-Achse (Kalenderwochen) set grid ytics mytics # Gitterl. an der Y-Achse set grid back # Gitter im Hintergrund set grid linestyle 1, linestyle 2 # Setzen des linestyle fuer Major u. Minor # X-Achsenbeschriftung: # ueber x1 machen wir die Monatsbschriftung, ueber x2 die Kalenderwochenbeschriftung # # beide X-Achsen, also x1 und x2, als Zeitachse definieren set xdata time set x2data time # Bereich (von - bis) der X-Achse definieren # Beginnt am 1. Jan. 2020 und Edit heute plus 6 Tage xrange_max=strftime("%Y-%m-%d", time(0) + (60*60*24*6)) # zuvor Berechnetes xrange_max setzten set xrange ['2020-01-01': xrange_max] set x2range ['2020-01-01': xrange_max] # die Maker fuer Monat setzen wir per Hand. Als 'format' geben wir einen leeren String an damit unset xtics set xtics rotate by +30 center offset -1.5,-0.6 set xtics format "" set xtics ( "1. Jan." "2020-01-01" \ , "1. Feb." "2020-02-01" \ , "1. März" "2020-03-01" \ , "1. Apr." "2020-04-01" \ , "1. Mai" "2020-05-01" \ , "1. Jun." "2020-06-01" \ , "1. Jul." "2020-07-01" \ , "1. Aug." "2020-08-01" \ , "1. Sep." "2020-09-01" \ , "1. Okt." "2020-10-01" \ , "1. Nov." "2020-11-01" \ , "1. Dez." "2020-12-01" \ , "1. Jan. 21" "2021-01-01" \ , "1. Feb." "2021-02-01" \ , "1. März" "2021-03-01" \ ) # # Kalenderwochen-Striche # # fuer x2 (KW) ebendalls keine Beschriftung set format x2 '' # der 6. Jan. 2020 war ein Montag - da setzen wir den ersten Strich und die # folgenden Striche alle 7 Tage (hier in 60 * 60 * 24 * 7 Sekunden) set x2tics '2020-01-06', 60 * 60 * 24 * 7 set x2tics scale 0 set xtics nomirror unset mxtics # Format Y-Achse set decimalsign locale "de_DE.utf8" set format y "%'.0f" set ytics nomirror set yrange [-5000:*] set ytics 25000 set mytics 5 # Kein 'set ylabel' weil oben fest positioniert # Zebramuster set style rect fillcolor lt -1 fillstyle solid 0.06 noborder do for [i=1:12:2] { marker_start=sprintf("2020-%1.2d-01",i) marker_stop =sprintf("2020-%1.2d-01",i+1) set object rectangle from marker_start,graph 0 to marker_stop, graph 1 marker_start=sprintf("2021-%1.2d-01",i) marker_stop =sprintf("2021-%1.2d-01",i+1) set object rectangle from marker_start,graph 0 to marker_stop, graph 1 } # Groesse und Schrift definieren # # Zur Variablen 'STATS_max' siehe oben my_svg_name=strftime("COVID_%d_%m_%Y",STATS_max) set term svg size 800,300 font "Arial,16" name my_svg_name set lmargin 10.0 # linker Rand fuer Beschriftung Y-Achse sollte nicht auf Auto stehen set rmargin 1.0 # rechter Rand set tmargin 1.0 # top margin set xlabel "Datum (Monats- und KW-Skala)" plot my_data usi 1:2 axis x1y1 tit '' lt rgb '#df7000' lw 1.00 with impulses