#!/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_Konstanz.dat'my_xrange_min = '30.06.1413'my_xrange_max = '31.12.2016'my_xtics_years = '100'my_mxtics = '5'my_yrange_min = '0'my_yrange_max = '*' # Nur hier ist '*' erlaubt und sinnvollmy_ytics = '25000'my_ymtics = '5'# Allgemeines zu den Eingabedatenset timefmt "%d.%m.%Y" # Zeitangaben in TT.MM.YYYYset datafile separator ";" # Spaltenseparator # Allgemeines zur Ausgabeunset key # als Standard keine Legendeset style data lines # wird bei 'plot' überschrieben set style fill transparent solid 0.4 # wird ebenfalls bei 'plot' überschriebenset border 3 # Rahmen unten (Bit 1) und links (+ Bit 2) set grid # Gitterlinien verwenden# Gitterlinienen per Hand setzen falls gewünscht set style line 1 linetype rgb '#696969' linewidth 0.5 dashtype 0 # Def. Major-gridset style line 2 linetype rgb '#C9C9C9' linewidth 0.5 dashtype 3 # def. Minor-gridset grid xtics mxtics # eventuell noxtics und nomxticsset grid ytics mytics # eventuell noytics und nomyticsset grid back # Gitter im Hintergrundset grid linestyle 1, linestyle 2 # 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 set xdata time # X-Achse als Zeitachseset xlabel 'Jahr' # Beschriftung X-Achseset xlabel offset 0, 0.75 # Schrift etwas höherset xrange [ my_xrange_min : my_xrange_max] # Wertebreich der X-Achseset xtics '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 liegenset xtics offset 0, 0.5 # Beschriftung näher an die X-Achseset mxtics my_mxtics # Skalenstriche set xtics nomirror # Nur unten Skalierenset format x '%Y' # Beschriftungsformat JJJJset xtics out # Skal. aussen damit sie nicht von Grafik # überschr. wird# Bereiche/Format/etc Y-Achseset ylabel 'Einwohnerzahl' offset 2 # Abstand Achse/Label # Untere Begrenzung des Bereichs der Y-Achseset yrange [ 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_max eq '*' )) set yrange [ : * ]if (!( my_yrange_max eq '*' )) set yrange [ : my_yrange_max ]set ytics my_ytics # Anzahl der kleinen Teilstricheset ytics offset 0.5 # Schrift etwas nach rechtsset ytics nomirror # oben keine Teilstricheset decimalsign locale "de_DE.utf8" # Stelle Input und Output auf "," um # set decimalsign ',' würde nur Output umstellen, set format y "%'.0f" # Ausgabeformatset mytics my_ymtics # Unterskalierung 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 Markierungsbalkenset 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 back set label "Dreißigjähriger Krieg" at '30.06.1633', graph 0.8 rotate by +60 center front# == Siebenjähriger Krieg#set obj rect from '29.08.1756', graph 0 to '21.09.1762' , graph 1 back#set label "Siebenjähriger Krieg" at '30.06.1759', graph 0.8 rotate by +60 center front# == Befreiungskriege#set obj rect from '26.02.1813', graph 0 to '20.11.1815' , graph 1 back#set label "Befreiungskriege" at '30.06.1814', graph 0.8 rotate by +60 center front# == 1. Weltkrieg set obj rect from '28.07.1914', graph 0 to '11.11.1918' , graph 1 back set label "1. Weltkrieg" at '30.06.1916', graph 0.9 rotate by +60 center front# == 2. Weltkrieg set obj rect from '01.09.1939', graph 0 to '04.05.1945' , graph 1 back set label "2. Weltkrieg" at '30.06.1942', graph 0.9 rotate by +60 center front# == Dädärä#set obj rect from '07.10.1949', graph 0 to '03.10.1990' , graph 1 back#set label "DDR" at '01.01.1970', graph 0.9 rotate by +60 center front# == Markierung für Großstadtgrenze # Mit Ein-/Auskommentieren festlegen ob bei 100.000 eine vertikale Linie gezogen werden soll set arrow from my_xrange_min, '100000' to my_xrange_max, '100000' nohead lc rgb '#B0FF0000' back# == Markierung für Millionenstadtgrenze # Mit Ein-/Auskommentieren festlegen ob bei 100.000 eine vertikale Linie gezogen werden soll set arrow from my_xrange_min, '1000000' to my_xrange_max, '1000000' nohead lc rgb '#B0FF0000' back# Außenränder (ohne Angabe entspricht Automatik)set bmargin set lmargin set rmargin 1.5 # rechts entspr. der Wert bei Auto etwas 2.8set tmargin # 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_Konstanz.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:Einwohnerentwicklung_von_Konstanz.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_data u 1:2 w lp lc rgb my_darkblue_40 lt 1 lw 1.5 pt 7 ps 0.3 t 'Einw. Entw.',\ my_data u 1:2 w p lc rgb my_darkblue_00 lt 1 lw 1.5 pt 7 ps 0.3 not ,\
Die folgenden Daten bitte in eine Textdatei unter dem Namen "Einwohnerentwicklung_von_Konstanz.dat" abspeichern und ins gleiche Verzeichnis wie das GnuPlot-Script ablegen.
Vor Änderungen der Struktur dieses Abschnitts bitte beachten, das die Daten zur Wartung anderer Grafiken benutzt werden. Dies sind Dateien, die möglicherweise die Daten dieses Abschnitts verwenden.
# Quelle:# https://www.how.com.vn/wiki/de/Konstanz#Bev.C3.B6lkerungsentwicklung##30.06.1413;600030.06.1518;500030.06.1604;544630.06.1763;371430.06.1775;395630.06.1806;441930.06.1815;451630.06.1829;563503.12.1843;637903.12.1852;7556#03.12.1864;851601.12.1871;1006101.12.1880;1337201.12.1890;1623501.12.1900;2144501.12.1910;2759108.10.1919;3011916.06.1933;3296117.05.1939;3770031.12.1945;38596#13.09.1950;4293406.06.1961;5265130.06.1965;5800027.05.1970;6116030.06.1975;7020031.12.1980;6830530.06.1985;6940031.12.1990;7508931.12.1995;7600031.12.2000;78087#31.12.2005;8121731.12.2010;8469309.05.2011;77796 # Wert wurde am 20.09-17 in Tab. des Artikels eingefügt31.12.2015;8285931.12.2016;83789EOF