<== Dateiübersicht dieses Verzeichnises
Ausgabe der SVG-Grafik
Ausgabe des Gnuplot Codes
#!/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
Ausgabe der Daten (CSV-Daten von der Wikiseite)
Ausgaben von Gnuplot während der Erzeugung der Grafik
"./COVID-19-Pandemie_-_IT_(Italien)_-_aktiv_Infizierte_(800px).gpl", line 6: No valid data points found in file