Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der
Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse
#!/usr/bin/gnuplot
# gnuplot
# Variablen - die wichtigsten Paramter dieser Grafik:
# (in der Regel wird es reichen für eine neue Grafik diese Werte zu ändern)
my_data='Einwohnerentwicklung_von_Freudenstadt.dat'
my_xrange_min='01.01.1871'
my_xrange_max='31.12.2016'
my_xtics_years='25'
my_mxtics='5'
my_yrange_min='0'
my_yrange_max='*'# Nur hier ist '*' erlaubt und sinnvoll
my_ytics='5000'
my_ymtics='5'
# Allgemeines zu den Eingabedaten
settimefmt"%d.%m.%Y"# Zeitangaben in TT.MM.YYYY
setdatafileseparator";"# Spaltenseparator
# Allgemeines zur Ausgabe
unsetkey# als Standard keine Legende
setstyledatalines# wird bei 'plot' überschrieben
setstylefilltransparentsolid0.4# wird ebenfalls bei 'plot' überschrieben
setborder3# Rahmen unten (Bit 1) und links (+ Bit 2)
setgrid# Gitterlinien verwenden
# Gitterlinienen per Hand setzen falls gewünscht
setstyleline1linetypergb'#696969'linewidth0.5dashtype0# Def. Major-grid
setstyleline2linetypergb'#C9C9C9'linewidth0.5dashtype3# def. Minor-grid
setgridxticsmxtics# eventuell noxtics und nomxtics
setgridyticsmytics# eventuell noytics und nomytics
setgridback# Gitter im Hintergrund
setgridlinestyle1,linestyle2# Setzen des linestyle für Major u. Minor
#show grid # Kontrollausgabe auf der Konsole
# Farben - nummerische Equavalente zu Namen nach:
# https://www2.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/colors.htm
# Die beiden Ziffen am Ende der Variablen geben opacity/transparenz an
#
my_darkred_00='#008B0000';my_darkred_20='#208B0000';
my_darkred_40='#408B0000';my_darkred_60='#608B0000';
my_darkred_80='#808B0000';my_darkred_a0='#a08B0000';
#
my_darkgreen_00='#00006400';my_darkgreen_20='#20006400';
my_darkgreen_40='#40006400';my_darkgreen_60='#60006400';
my_darkgreen_80='#80006400';my_darkgreen_a0='#a0006400';
#
my_darkblue_00='#0000008B';my_darkblue_20='#2000008B';
my_darkblue_40='#4000008B';my_darkblue_60='#6000008B';
my_darkblue_80='#8000008B';my_darkblue_a0='#a000008B';
#
my_darkmagenta_00='#008B008B';my_darkmagenta_20='#208B008B';
my_darkmagenta_40='#408B008B';my_darkmagenta_60='#608B008B';
my_darkmagenta_80='#808B008B';my_darkmagenta_a0='#a08B008B';
#
my_darkorange_00='#00FF8C00';my_darkorange_20='#20FF8C00';
my_darkorange_40='#40FF8C00';my_darkorange_60='#60FF8C00';
my_darkorange_80='#80FF8C00';my_darkorange_a0='#a0FF8C00';
#
my_darkturquoise_00='#0000CED1';my_darkturquoise_20='#2000CED1';
my_darkturquoise_40='#4000CED1';my_darkturquoise_60='#6000CED1';
my_darkturquoise_80='#8000CED1';my_darkturquoise_a0='#a000CED1';
# Bereiche/Format/etc X-Achse
setxdatatime# X-Achse als Zeitachse
setxlabel'Jahr'# Beschriftung X-Achse
setxlabeloffset0,0.75# Schrift etwas höher
setxrange[my_xrange_min:my_xrange_max]
# Wertebreich der X-Achse
setxtics'01.01.1000',60*60*24*365.25*my_xtics_years
# xtics in Sekunden
# der Beginn (Wert vor dem Komma) der X-Einteilung
# kann außerhalb xrange liegen
setxticsoffset0,0.5# Beschriftung näher an die X-Achse
setmxticsmy_mxtics# Skalenstriche
setxticsnomirror# Nur unten Skalieren
setformatx'%Y'# Beschriftungsformat JJJJ
setxticsout# Skal. aussen damit sie nicht von Grafik
# überschr. wird
# Bereiche/Format/etc Y-Achse
setylabel'Einwohnerzahl'offset2# Abstand Achse/Label
# Untere Begrenzung des Bereichs der Y-Achse
setyrange[my_yrange_min:]
# Obere Begrenzung des Bereichs der Y-Achse
# wir Testen ob der Wert der Var. my_yrange_max ein '*' ist und reagieren
# entsprechend weil der '*' sich nicht direkt via Var. setzen lässt.
if ((my_yrange_maxeq'*'))setyrange[:*]
if (!(my_yrange_maxeq'*'))setyrange[:my_yrange_max]
setyticsmy_ytics# Anzahl der kleinen Teilstriche
setyticsoffset0.5# Schrift etwas nach rechts
setyticsnomirror# oben keine Teilstriche
setdecimalsignlocale"de_DE.utf8"# Stelle Input und Output auf "," um
# set decimalsign ',' würde nur Output umstellen,
setformaty"%'.0f"# Ausgabeformat
setmyticsmy_ymtics# Unterskalierung
setyticsout# 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
setstylerectfillcolorlt-1fillstylesolid0.1noborder
#
# == Dreißigjähriger Krieg
setobjrectfrom'23.05.1618',graph0to'24.10.1648',graph1
setlabel"Dreißigjähriger Krieg"at'30.06.1633',graph0.8rotateby+60center
# == 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
setobjrectfrom'28.07.1914',graph0to'11.11.1918',graph1
setlabel"1. Weltkrieg"at'30.06.1916',graph0.9rotateby+60center
# == 2. Weltkrieg
setobjrectfrom'01.09.1939',graph0to'04.05.1945',graph1
setlabel"2. Weltkrieg"at'30.06.1942',graph0.9rotateby+60center
# == 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
# Außenränder (ohne Angabe entspricht Automatik)
setbmargin
setlmargin
setrmargin1.5# rechts entspr. der Wert bei Auto etwas 2.8
settmargin
# Ausgabeformat: Wir erzeugen SVG
# Die Ausgabedaten leiten wir bei UNIX in eine Pipe und sind so beim 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_Freudenstadt.svg'
settermsvgsize800,400font"Arial,16"
# Die Parameter von 'set term' sind so gewählt, das man in Wikipedia bei einer
# Einbindung [[Datei:Einwohnerentwicklung_von_Freudenstadt.svg|mini|400px|Text]] noch Schrift/Details
# erkennen kann.
# Abkürzungen hinter dem Plot-Befehl:
# u : using
# w : with
# lc : linecolor
# lt : linetype
# lw : linewidth
# pt : pointtype
# ps : pointsize
# lp : linespoints
# p : points
# t : title
# not : notitle
# Jede Kurve wird zweimal gezeichnet. Beim ersten mal mit etwas Transparenz
# damit es heller wird. Beim zweiten mal werden die Punkt dunkel
# nachgezeichnet. Dadurch sollte der Betrachter besser erkenen können, wo
# Messpunkte fehlen.
#
# Erzeugen der Ausgabe
plot\
my_datau1:2wlplcrgbmy_darkblue_40lt1lw1.5pt7ps0.3t'Einw. Entw.',\
my_datau1:2wplcrgbmy_darkblue_00lt1lw1.5pt7ps0.3not,\