#!/usr/bin/gnuplot
# gnuplot
# Allgemeines zu den Eingabedaten
set timefmt "%d.%m.%Y" # Zeitangaben in TT.MM.YYYY
set datafile separator ";" # Spaltenseparator
# Allgemeines zur Ausgabe
unset key # als Standard keine Legende
set style data lines # wird bei 'plot' überschrieben
set style fill transparent solid 0.4 # ebenfalls bei 'plot' überschrieben
set grid #
set border 3 # Bit 1 (unten) + Bit 2 (links)
# Bereiche/Format/etc X-Achse
set xdata time # X-Achse als Zeitachse
set xlabel 'Jahr' # Beschriftung X-Achse
set xlabel offset 0, 0.75 # Schrift etwas höher
set xrange ['31.12.1998':'31.12.2016']
set xtics '01.01.1000', 60 * 60 * 24 * 365.25 * 2
# xtics in Sekunden
# der Beginn der X-Einteilung kann außerhalb xrange
# liegen
set xtics offset 0, 0.5 # Beschritung näher an die X-Achse
set mxtics 2 # Skalenstriche
set xtics nomirror # Nur unten Skalieren
set format x '%Y' # Beschriftungsformat JJJJ
set xtics out # Skal. aussen damit sich nicht von Grafik
# überschr. wird
# Bereiche/Format/etc Y-Achse
set ylabel 'Einwohnerzahl' offset 2 # Abstand Achse/Label
set yrange [25000:30000]
set ytics 500
set ytics offset 0.5 # Schrift etwas nach rechts
set ytics nomirror
set decimalsign locale "de_DE.utf8" # Stelle Input und Output auf "," um
# set decimalsign ',' würde nur Output umstellen,
set format y "%'.0f" # Ausgabeformat
set mytics 5
set ytics out # Skal. aussen da sie sonst von Grafik
# überschr. wird
#### Markierungsbalken für die beiden Weltkriege etc.
# Die set-Befehle ggf. auskommentieren
# Attribute für Markierungsbalken
set style rect fillcolor lt -1 fillstyle solid 0.1 noborder
#
# == Dreißigjähriger Krieg
set obj rect from '23.05.1618', graph 0 to '24.10.1648' , graph 1
set label "Dreißigjähriger Krieg" at '30.06.1633', graph 0.8 rotate by +60 center
# == Siebenjähriger Krieg
#set obj rect from '29.08.1756', graph 0 to '21.09.1762' , graph 1
#set label "Siebenjähriger Krieg" at '30.06.1759', graph 0.8 rotate by +60 center
# == Befreiungskriege
#set obj rect from '26.02.1813', graph 0 to '20.11.1815' , graph 1
#set label "Befreiungskriege" at '30.06.1814', graph 0.8 rotate by +60 center
# == 1. Weltkrieg
set obj rect from '28.07.1914', graph 0 to '11.11.1918' , graph 1
set label "1. Weltkrieg" at '30.06.1916', graph 0.9 rotate by +60 center
# == 2. Weltkrieg
set obj rect from '01.09.1939', graph 0 to '04.05.1945' , graph 1
set label "2. Weltkrieg" at '30.06.1942', graph 0.9 rotate by +60 center
# == Dädärä
#set obj rect from '07.10.1949', graph 0 to '03.10.1990' , graph 1
#set label "DDR" at '01.01.1970', graph 0.9 rotate by +60 center
# Ausgabeformat: Wir erzeugen SVG
# Die Ausgabedaten leiten wir bei UNIX in eine Pipe und sind so bei Namen der
# Ausgabedatei flexibel (Aufruf: Progname.plt > Ausgabe-svg)
# Windowsbenutzer, die mit Pipes nicht umgehen könnten, sollten hier hier das
# folgende 'set output ...' auskommentieren und den Dateinamen ggf. ersetzen.
# set output 'Einwohnerentwicklung_von_Mühlheim_am_Main.svg'
set term svg size 800,400 font "Arial,16"
# Die Parameter von 'set term' sind so gewählt, das man in Wikipedia bei einer
# Einbindung [[Datei:Meine_Grafik.svg|mini|400px|Text]] noch Schrift/Details
# erkennen kann.
# Erzeugen der Ausgabe
plot \
'Einwohnerentwicklung_von_Mühlheim_am_Main.dat' using 1:2 with linespoints linecolor 'dark-blue' linetype 1 linewidth 1.5 pointtype 7 pointsize 0.30,\
Die folgenden Daten bitte in eine Textdatei unter dem Namen "Einwohnerentwicklung_von_Mühlheim_am_Main.dat" abspeichern und ins gleiche Verzeichnis wie das GnuPlot-Script ablegen.
Update der Daten und Überschreiben der Grafik ausdrücklich erwünscht.
#
# Quelle:
# https://de.wikipedia.org/wiki/M%C3%BChlheim_am_Main#Einwohnerentwicklung
#
31.12.1998;26124
31.12.1999;26210
31.12.2000;26082
31.12.2001;26210
31.12.2002;26396
31.12.2003;26436
31.12.2004;26557
31.12.2005;26582
31.12.2006;26625
31.12.2007;26665
31.12.2008;26708
31.12.2012;27206
31.12.2014;27753
31.12.2015;28170
31.12.2016;29999
EOF