Erstellen von Wachstumskurven mit Gnuplot

Hinweise auf den Gesundheits- und Ernährungszustand von Kindern- und Jugendlichen können sich durch die Messung anthropometrischer Merkmale und deren Einordnung in Perzentilkurven, die die Verteilung der Körpermaße in einer Referenzpopulation wiederspiegeln, ergeben. Eine aktuelle Studie zur Gesundheit von Kindern und Jugendlichen[ 1] liefert solche Perzentilkurven ausgewählter Körpermaße von Kindern und Jugendlichen im Alter von 3 Monaten bis 17 Jahren.
Als individuelle Datenquelle können die Ergebnisse der kinderärztlichen Untersuchungen, die im Mutterpass dokumentiert sind, herangezogen werden. Es gibt insgesamt 9 Vorsorgeuntersuchungen, angefangen von der U1 direkt am Tag der Geburt, bis hin zur U9 im 5 Lebensjahr, bzw. bis zu 4 Monaten später. Bei allen Vorsorgeuntersuchungen wird in der Regel auch das Gewicht und die Körpergröße erfasst. Darüber hinaus sollte man diese Körpermaße in regelmäßigen Abständen auch selbst erfassen. Oft erinnern die Kinder selbst an die Messungen, da sie ab einem gewissen Lebensalter an ihrem eigenen Wachstum Interesse zeigen. Für die Darstellung der gemessenen Daten soll die skriptgesteuerte Plottersoftware Gnuplot, die unter freier Lizenz für alle gängigen Betriebssysteme verfügbar ist, verwendet werden. Die Aufbereitung der Daten für Gnuplot ist denkbar einfach: In einer Textdatei werden spaltenweise Messzeitpunkt, Körpergröße in cm und Körpergewicht in Gramm, jeweils durch Leerzeichen oder Tabulator getrennt erfasst. In Zeile 4 des folgenden kleinen Gnuplot-Skripts wird dem Programm mitgeteilt, dass es sich bei den Daten für die x-Achse um Datumsangaben handelt, die folgende Zeile beschreibt das Format, in dem das Datum vorliegt. Das Höchstalter des zu untersuchenden Kindes muß gegebenfalls in Zeile 15 als oberer Grenzwert des Darstellungsbereichs angepasst werden. Dabei zählt nur die Dekade des Jahrtausends als Kindesalter (Gnuplot repräsentiert Zeitangaben intern als Sekunden seit dem 01.01.2000). Mein Skript geht von den Daten zweier Kinder aus, die in den Dateien "bruno.dat" und "felix.dat" gespeichert sind. In diesen Dateien ist der Zeitpunkt der Messung natürlich durch das reale Datum vermerkt. Da die Daten aber über das Alter des Kindes abgetragen werden sollen, muss in Zeile 45 und 46 das Datum der Messung entsprechend verschoben werden, so dass die Geburt mit dem Datum 01.01.2000 zusammenfällt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/gnuplot 
#
set encoding utf8
set xdata time
set timefmt "%d.%m.%Y"
set xtics rotate by -45
set format x "%b/%y"
 
set termoption dash
set size ratio 0.7 1.0, 1.0; set origin 0.0, 0.0
set ylabel "Körpergröße [cm]"
set xlabel "Alter [Jahre]" offset screen 0,-0.02
#####################################
# Als Endpunkt das Höchstalter eintragen:
set xrange ['01.01.2000':'01.01.2009']
set ytics mirror
unset y2label
unset y2range
unset y2tics
set format x "%y"
set mxtics 12
set key left
set key screen 0.1,0.9
 
set style line 1 lt 1 lc rgb "red" lw 3
set style line 2 lt 1 lc rgb "grey" lw 1
set style line 3 lt 1 lc rgb "black" lw 1
set style line 4 lt 1 lc rgb "green" lw 1
 
#####################################################
# Darstellung der Körperlänge über dem Kindesalter
#
# Sekunden/Tag = 86400
# Differenz der Geburtsdatumsangaben in Tagen = 962
# Differenz zwischen Brunos Geburtstag und 1.1.2000 in Tagen = 1660
# Verschiebe die Zeitangaben, so dass sie am 1.1.2000 starten.
 
plot "KiGGS-Referenzperzentile-Länge.dat" using 1:5 title "Perzentile P50 (KiGGS 2003-06)" ls 1 smooth csplines, \
     "" using 1:6 title "Perzentile P75" ls 2 smooth csplines, \
     "" using 1:4 t "Perzentile P25" ls 2 smooth csplines, \
     "" using 1:7 title "Perzentile P90" ls 3 smooth csplines, \
     "" using 1:3 t "Perzentile P10" ls 3 smooth csplines, \
     "" using 1:8 title "Perzentile P97" ls 4 smooth csplines, \
     "" using 1:2 t "Perzentile P3" ls 4 smooth csplines, \
     "bruno.dat" using (timecolumn(1)-1660*86400):2 title "Bruno Körpergröße" with linespoints  4, \
     "felix.dat" using (timecolumn(1)-(963+1660)*86400):2 title "Felix Körpergröße" with linespoints 5
 
set term svg fsize 8
set output "kurven-l.svg"
replot
 
pause -1

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
set ylabel "BMI [kg/m²]"
 
plot "KiGGS-Referenzperzentile-BMI.dat" using 1:5 title "Perzentile P50 (KiGGS 2003-06)" ls 1 smooth csplines, \
     "" using 1:6 title "Perzentile P75" ls 2 smooth csplines, \
     "" using 1:4 t "Perzentile P25" ls 2 smooth csplines, \
     "" using 1:7 title "Perzentile P90" ls 3 smooth csplines, \
     "" using 1:3 t "Perzentile P10" ls 3 smooth csplines, \
     "" using 1:8 title "Perzentile P97" ls 4 smooth csplines, \
     "" using 1:2 t "Perzentile P3" ls 4 smooth csplines, \
     "bruno.dat" using (timecolumn(1)-1660*86400):($3/1000.0)/($2/100.0)**2 title "Bruno BMI" with linespoints  4, \
     "felix.dat" using (timecolumn(1)-(963+1660)*86400):($3/1000.0)/($2/100.0)**2 title "Felix BMI" with linespoints 5
 
set term svg fsize 8
set output "kurven-bmi.svg"
replot
 
pause -1

54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
set ylabel "Gewicht [kg]"
 
plot "KiGGS-Referenzperzentile-Gewicht.dat" using 1:5 title "Perzentile P50 (KiGGS 2003-06)" ls 1 smooth csplines, \
     "" using 1:6 title "Perzentile P75" ls 2 smooth csplines, \
     "" using 1:4 t "Perzentile P25" ls 2 smooth csplines, \
     "" using 1:7 title "Perzentile P90" ls 3 smooth csplines, \
     "" using 1:3 t "Perzentile P10" ls 3 smooth csplines, \
     "" using 1:8 title "Perzentile P97" ls 4 smooth csplines, \
     "" using 1:2 t "Perzentile P3" ls 4 smooth csplines, \
     "bruno.dat" using (timecolumn(1)-1660*86400):($3/1000.0) title "Bruno Gewicht" with linespoints  4, \
     "felix.dat" using (timecolumn(1)-(963+1660)*86400):($3/1000.0) title "Felix Gewicht" with linespoints 5
 
set term svg fsize 8
set output "kurven.svg"
replot
 
pause -1

Die Dateien KiGGS-Referenzperzentile-Länge.dat, KiGGS-Referenzperzentile-Gewicht.dat und KiGGS-Referenzperzentile-BMI.dat mit der Angabe der Referenzperzentilen zu Größe, Gewicht und BMI, auf Grundlage der oben erwähnten Studie, stehen zum Download bereit.