WHO provides child growth standards for various measures. For example, the Excel table Boys table- Length-for-age: Birth to 13 weeks (percentiles) provides boy's length percentiles from week 0 to 13, and Girls table- Weight-for-length: Birth to 2 years (percentiles) provides girl's weight percentiles at different lengths1. This project aims to help plot actual data points against standard percentiles for comparison.
Download desired percentile Excel tables from WHO site. May further combine correlated Excel files into a single one with multiple sheets for easier management. For example, create an Excel file containing all measures for age 0-13 weeks with each sheet for a different measure.
Measure and record actual data points in the same Excel tables alongside the standard percentiles. Follow different practices for time-series measure and non-time-series measure.
Time-series measures are those for age (week/month), like length for age. X-axis represents age. Actual data points are measured at the same ages as standard percentiles. Since X-axis values are shared, only Y-axis values need to be recorded. So add a new column labeled Y
to the right in the Excel table. For example,
Week | P5 | P50 | P95 | Y |
---|---|---|---|---|
0 | 46.8 | 49.9 | 53 | 50 |
1 | 48 | 51.1 | 54.2 | 51 |
2 | 49.2 | 52.3 | 55.5 |
P5
, P50
, P95
are 5%, 50%, 95% percentiles, and Y
is actual measures. All share the same X-axis values in Week
. Y
usually has less rows as further measures are yet to come.
Non-time-series measures are those not sampled by age, like weight for length (not age). Actual data points do not share the same X-axis values with standard percentiles. So both X- and Y-axis values must be recorded. Add two new columns labeled X
and Y
to the right in the Excel table. For example,
Length | P5 | P50 | P95 | X | Y |
---|---|---|---|---|---|
45 | 2.1 | 2.4 | 2.9 | 45.3 | 2.3 |
45.5 | 2.2 | 2.5 | 2.9 | 45.5 | 2.4 |
46 | 2.3 | 2.6 | 3 | 45.7 | 2.6 |
46 | 2.8 |
The percentiles P5
, P50
, P95
are aligned to Length
while actual measure Y
is aligned to X
. Since Length
and X
are independent, there can be more rows of Y
than percentiles.
Dealing with non-time series is tricky. Suggest using BMI for age rather than weight for length/height and sticking to time series.
Plot with plot.py --path PATH [--margin {3,5,10}]
.
path
: Plot all sheets in the Excel file at pathpath
.margin
: Plot actual data points along with standard percentilesP(margin)
,P50
,P(100-margin)
for comparison. Default is3
.
For example, the following chart is plotted with plot.py --path sample
.
Finally, plot well and have a happy healthy baby ❤️
Footnotes
-
Child under 2 years is measured by length rather than height. ↩