#!/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_Meiningen.dat'my_xrange_min = '01.01.1990'my_xrange_max = '31.12.2035'my_xtics_years = '5'my_mxtics = '5'my_yrange_min = '10000'my_yrange_max = '30000'my_ytics = '2500'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 2 # 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 # Beschritung näher an die X-Achseset mxtics 5 # 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 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# 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_Meiningen.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_Meiningen.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 ,\ '-' u 1:2 w lp lc rgb my_darkred_00 lt 1 lw 1.5 pt 7 ps 0.3 not ,\## Quelle: # https://www.search.com.vn/wiki/de/Einwohnerentwicklung_von_Meiningen#Bev%C3%B6lkerungsprognose#31.12.2015 ; 2112131.12.2020 ; 2139631.12.2025 ; 2148631.12.2030 ; 2146231.12.2035 ; 21416 EOF