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_Gießen.dat'
my_xrange_min='30.06.1495'
my_xrange_max='31.12.2016'
my_xtics_years='50'
my_mxtics='5'
my_yrange_min='0'
my_yrange_max='*'# Nur hier ist '*' erlaubt und sinnvoll
my_ytics='10000'
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.5dashtype2# Def. Major-grid
setstyleline2linetypergb'#D9D9D9'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';
# 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# Beschritung näher an die X-Achse
setmxtics5# 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_Gießen.svg'
settermsvgsize800,400font"Arial,16"
# Die Parameter von 'set term' sind so gewählt, das man in Wikipedia bei einer
# Einbindung [[Datei:Einwohnerentwicklung_von_Gießen.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,\
Die folgenden Daten bitte in eine Textdatei unter dem Namen "Einwohnerentwicklung_von_Gießen.dat" abspeichern und ins gleiche Verzeichnis wie das GnuPlot-Script ablegen.
#
# Quelle:
# https://de.wikipedia.org/wiki/Gie%C3%9Fen#Einwohnerentwicklung
#
30.06.1495;1200
30.06.1577;3000
30.06.1675;4450
30.06.1782;4600
30.06.1800;4800
30.06.1805;5174
30.06.1828;7251
01.12.1834;7878
03.12.1846;8696
03.12.1855;9000
03.12.1861;9210
03.12.1864;9600
03.12.1867;10200
01.12.1871;12245
01.12.1875;13900
#
01.12.1880;17003
01.12.1885;19001
01.12.1890;20416
02.12.1895;22702
01.12.1900;25491
01.12.1905;28769
01.12.1910;31153
01.12.1916;26591
05.12.1917;26806
08.10.1919;33402
16.06.1925;33600
16.06.1933;35913
17.05.1939;46560
31.12.1945;34907
29.10.1946;39709
#
13.09.1950;46712
25.09.1956;58178
06.06.1961;66291
31.12.1965;72395
27.05.1970;75555
31.12.1975;75481
31.12.1980;76374
31.12.1985;71104
25.05.1987;69824
31.12.1990;74497
31.12.1995;73889
31.12.2000;73138
30.06.2005;73358
31.12.2006;73958
30.06.2007;74123
#
31.12.2008;75140
31.12.2009;76090
31.12.2011;78584
31.12.2014;83280
31.12.2015;84455
31.12.2016;86543
EOF