#!/usr/bin/gnuplot
# gnuplot
# Variablen - die wichtigsten Paramter dieser Grafik:
# (in der Regel wird es reichen fur eine neue Grafik diese Werte zu andern)
my_data
=
'Einwohnerentwicklung_von_Landkreis_Altotting.dat'
my_xrange_min
=
'01.01.1840'
my_xrange_max
=
'31.12.2017'
my_xtics_years
=
'25'
my_mxtics
=
'5'
my_yrange_min
=
'0'
my_yrange_max
=
'*'
# Nur hier ist '*' erlaubt und sinnvoll
my_ytics
=
'25000'
my_ymtics
=
'5'
# Allgemeines zu den Eingabedaten
set
timefmt
"%d.%m.%Y"
# Zeitangaben in TT.MM.YYYY
set
datafile
separator
";"
# Spaltenseparator
set
datafile
commentschars
"#"
# Kommentarzeichen
stats
my_data
u
(strptime("%d.%m.%Y",strco
l
(
1
)))
nooutput
my_diff
=
(
STATS_max
-
STATS_min
)
/
(
60
*
60
*
24
*
365.25
)
print
' -----Stats-(Timestamp)----------------------'
print
' Erster Wert der Datendatei: '
,
strftime
(
"%d.%m.%Y"
,
STATS_min
)
print
' Letzter Wert der Datendatei: '
,
strftime
(
"%d.%m.%Y"
,
STATS_max
)
print
' Diff in Jahren: '
,
my_diff
print
' --------------------------------------------'
# Anmerk.: die ausgegebenen Timestamps konnen in einer Shell bequem mit
# 'date -d @[Wert]' in humanleseriches Format gewandelt werden
# Allgemeines zur Ausgabe
set
key
vertical
maxrows
6
# Max Anzahl Zeilen
set
key
left
top
# Legende links oben
set
key
opaque
# ohne Transparenz
set
key
samplen
2
# Breite der Linenbeispiele
unset
key
# direkt vorher gesetzte Werte aufgehoben; ggf auskommentieren!
set
style
data
lines
# wird bei 'plot' uberschrieben
set
style
fill
transparent
solid
0.4
# wird ebenfalls bei 'plot' uberschrieben
set
border
3
# Rahmen unten (Bit 1) und links (+ Bit 2)
set
grid
# Gitterlinien verwenden
# Gitterlinienen per Hand setzen falls gewunscht
set
style
line
1
linetype
rgb
'#696969'
linewidth
0.5
dashtype
2
# Def. Major-grid
set
style
line
2
linetype
rgb
'#C9C9C9'
linewidth
0.5
dashtype
3
# def. Minor-grid
set
grid
xtics
mxtics
# eventuell noxtics und nomxtics
set
grid
ytics
mytics
# eventuell noytics und nomytics
set
grid
back
# Gitter im Hintergrund
set
grid
linestyle
1
,
linestyle
2
# Setzen des linestyle fur 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_darkred_c0
=
'#c08B0000'
;
my_darkred_e0
=
'#e08B0000'
;
#
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_darkgreen_c0
=
'#c0006400'
;
my_darkgreen_e0
=
'#e0006400'
;
#
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_darkblue_c0
=
'#c000008B'
;
my_darkblue_e0
=
'#e000008B'
;
#
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_darkmagenta_c0
=
'#c08B008B'
;
my_darkmagenta_e0
=
'#e08B008B'
;
#
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_darkorange_c0
=
'#c0FF8C00'
;
my_darkorange_e0
=
'#e0FF8C00'
;
#
my_darkturquoise_00
=
'#0000CED1'
;
my_darkturquoise_20
=
'#2000CED1'
;
my_darkturquoise_40
=
'#4000CED1'
;
my_darkturquoise_60
=
'#6000CED1'
;
my_darkturquoise_80
=
'#8000CED1'
;
my_darkturquoise_a0
=
'#a000CED1'
;
my_darkturquoise_c0
=
'#c000CED1'
;
my_darkturquoise_e0
=
'#e000CED1'
;
#
my_black_00
=
'#00000000'
;
my_black_20
=
'#20000000'
;
my_black_40
=
'#40000000'
;
my_black_60
=
'#60000000'
;
my_black_80
=
'#80000000'
;
my_black_a0
=
'#a0000000'
;
my_black_c0
=
'#c0000000'
;
my_black_e0
=
'#e0000000'
;
# 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 hoher
set
xrange
[
my_xrange_min
:
my_xrange_max
]
# Wertebreich der X-Achse
set
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 liegen
set
xtics
offset
0
,
0.5
# Beschriftung naher an die X-Achse
set
mxtics
my_mxtics
# Skalenstriche
set
xtics
nomirror
# Nur unten Skalieren
set
format
x
'%3Y'
# Beschr.format JJJJ (bei 3 Stellen o. fuhrend 0)
set
xtics
out
# Skal. aussen damit sie nicht von Grafik
# uberschr. wird
# Bereiche/Format/etc Y-Achse
set
ylabel
'Einwohnerzahl'
offset
2
# Abstand Achse/Label
# Untere Begrenzung des Bereichs der Y-Achse
set
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 lasst.
if
(
(
my_yrange_max
eq
'*'
)
)
set
yrange
[
:
*
]
if
(
!
(
my_yrange_max
eq
'*'
)
)
set
yrange
[
:
my_yrange_max
]
set
ytics
my_ytics
# Anzahl der kleinen Teilstriche
set
ytics
offset
0.5
# Schrift etwas nach rechts
set
ytics
nomirror
# oben keine Teilstriche
set
decimalsign
locale
"de_DE.utf8"
# Stelle Input und Output auf "," um
# set decimalsign ',' wurde nur Output umstellen,
set
format
y
"%'.0f"
# Ausgabeformat
set
mytics
my_ymtics
# Unterskalierung
set
ytics
out
# Skal. aussen da sie sonst von Grafik
# uberschr. wird
#### Markierungsbalken fur die beiden Weltkriege etc.
# Die set-Befehle ggf. auskommentieren
# Attribute fur Markierungsbalken
set
style
rect
fillcolor
lt
-1
fillstyle
solid
0.1
noborder
#
# == Dreißigjahriger Krieg
set
obj
rect
from
'23.05.1618'
,
graph
0
to
'24.10.1648'
,
graph
1
back
set
label
"Dreißigjahriger Krieg"
at
'30.06.1633'
,
graph
0.8
rotate
by
+
60
center
front
# == Siebenjahriger Krieg
# set obj rect from '29.08.1756', graph 0 to '21.09.1762' , graph 1 back
# set label "Siebenjahriger Krieg" at '30.06.1759', graph 0.8 rotate by +60 center front
# == Hamburger Franzosenzeit
# set obj rect from '30.06.1806', graph 0 to '30.06.1814' , graph 1
# set label "H. Franzosenzeit" at '01.01.1810', graph 0.3 rotate by +60 center
# == 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
front
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
front
set
label
"2. Weltkrieg"
at
'30.06.1942'
,
graph
0.9
rotate
by
+
60
center
front
# == Dadara
# 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 fur 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 fur 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ßenrander (keine Angabe entspricht Automatik)
set
bmargin
set
lmargin
set
rmargin
1.5
# rechts entspr. der Wert bei Auto etwa 2.8
set
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 konnten, sollten das Kommentar-
# zeichen vor dem 'set output ...' folgenden Befehl entfernen.
# set output 'Einwohnerentwicklung_von_Landkreis_Altotting.svg'
set
term
svg
size
800
,
400
font
"Arial,16"
# Die Parameter von 'set term' sind so gewahlt, das man in Wikipedia bei einer
# Einbindung [[Datei:Einwohnerentwicklung_von_Landkreis_Altotting.svg|mini|400px|Text]] noch Schrift/Details
# erkennen kann.
# Abkurzungen 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
# filledc : filledcurves (Bsp.: File:Einwohnerentwicklung von Wanne-Eickel.svg)
# rgb : RedGreenBlue
# Daten per Here-Document
# (siehe Abschntt 'Inline data and datablocks' in
# http://www.gnuplot.info/docs_5.2/Gnuplot_5.2.pdf )
#
$my_HD_1
<<
EndOfData_1
# bei 'plot' mit '$my_HD_1 use 1:2 with ...' einbinden
...
EndOfData_1
# 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 erkennen konnen, 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.22
t
'Einw. Entw.'
,
\
my_data
u
1
:
2
w
p
lc
rgb
my_darkblue_00
lt
1
lw
1.5
pt
7
ps
0.22
not
,
\
# $my_HD_1 u 1:2 w lp lc rgb my_darkred_40 lt 1 lw 1.5 pt 7 ps 0.22 t 'Einw. Entw.',\
# $my_HD_1 u 1:2 w p lc rgb my_darkred_00 lt 1 lw 1.5 pt 7 ps 0.22 not ,\
Die folgenden Daten bitte in eine Textdatei unter dem Namen "Einwohnerentwicklung_von_Landkreis_Altotting.dat" abspeichern und ins gleiche Verzeichnis wie das GnuPlot-Script ablegen.
Vor Anderungen der Struktur dieses Abschnitts bitte beachten, das die Daten zur Wartung anderer Grafiken benutzt werden.
Dies
sind Dateien, die moglicherweise die Daten dieses Abschnitts verwenden.
#
# Quelle:
# https://de.wikipedia.org/wiki/Landkreis_Alt%C3%B6tting#Einwohnerentwicklung
#
30.06.1840 ; 30869
30.06.1900 ; 35172
30.06.1939 ; 50219
30.06.1950 ; 76369
30.06.1961 ; 78095
30.06.1970 ; 89934
30.06.1987 ; 94216
30.06.1991 ; 100258
30.06.1995 ; 105914
30.06.2000 ; 108268
30.06.2005 ; 109227
30.06.2010 ; 107711
30.06.2015 ; 108485
30.06.2017 ; 110338
# EOF