#!/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 ['30.06.1625':'30.06.2015']
set xtics '01.01.1000', 60 * 60 * 24 * 365.25 * 50
# 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 5 # 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 [0:]
set ytics 1000
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.7 rotate by +90 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.8 rotate by +90 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.8 rotate by +90 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_Steinen_(Baden).dat'
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_Steinen_(Baden).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_Steinen_(Baden).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/Steinen_(Baden)#Einwohnerentwicklung
#
30.06.1625;695
30.06.1648;561
30.06.1740;870
30.06.1750;1003
30.06.1833;1297
30.06.1839;1905
30.06.1871;2704
30.06.1895;2902
30.06.1900;3140
30.06.1953;4604
30.06.1961;6519
30.06.1970;7596
30.06.1980;8038
30.06.1990;9149
30.06.1995;10133
30.06.2000;10005
30.06.2005;10067
30.06.2010;10143
30.06.2011;10152
30.06.2015;9900
EOF