I’ve been tracking my body composition (specifically weight and body fat percentage) pretty consistently for a number of years, and decided it would be a fun exercise to put together my own body composition data charts using something other than Microsoft Excel.
Body Composition Data (Weight and Body Fat) Sources
Over the years I have used a number of different methods for tracking body composition:
Withings – I have gone through several of their connected/”smart” scales over the years and currently use their Withings Body Cardio scale. It uses bioelectrical impedance analysis (BIA) to estimate body fat percentage.
Omron – I have the Omron HBF-514C, which has hand sensors in addition to the ones built into the floor scale so it can provide a more detailed breakdown of body composition (like estimating visceral vs. subcutaneous fat). The only downside is it doesn’t use Bluetooth or WiFi, so I have to record the values manually but that’s only a slight inconvenience
Inbody – their body composition analyzers take body impedance measurements a step further, generating reports showing visceral fat, segmental fat, intracellular water, and extracellular water. Due to their extremely high price point, they are rarely found in homes, but models like the Inbody 570 and 270 are becoming popular in fitness facilities and clinics.
DEXA (or DXA) – considered by many to be the clinical “gold standard” for measuring fat, muscle, and bone density. DEXA stands for dual energy x-ray absorptiometry, in which two X-ray beams are aimed at the bones. Depending on where you live (and local laws) there are now performance facilities and mobile units offering DEXA scans at affordable prices.
Fit3D – these 3D body scanning stations are popping up at biohacking/”future fitness” facilities around the world. You stand on a rotating platform and an array of depth sensors constructs a 3D model of your body and provides body measurements like waist, arms, legs, neck, etc. It also measures body weight and uses BIA to calculate body composition.
Other – includes other traditional/manual/non-connected scales I have used at places like hotels, other people’s homes, etc.
Preparing My Body Composition Data
Since all of my body composition data was already aggregated in my personal data warehouse, I could simply dump the data into a comma-separated text file (you can see the raw .csv data here).
Generating My Charts Using Jupyter Notebook and Python
While creating charts using a tool like Microsoft Excel is fine, I have been using Jupyter Notebooks (formerly iPython Notebooks) a lot lately as an easy way to prototype and share code. Using just a few lines of Python code, I could import my .csv data and generate the following body composition data charts!
Visualizing 10+ Years of Body Weight Data
The first chart below is visualization of 10+ years of my body weight data, generated using Jupyter Notebook/Python. Different color dots indicate each data source (Withings, Inbody, Omron, etc.), and the purple trendline is a 30-day moving average. Click on the image for a larger version.
Visualizing 10+ Years of Body Fat Data
Here is a visualization of 10+ years of my body fat data, again generated using Jupyter Notebook/Python. Different colors indicate each data source, and the purple trendline is a 30-day moving average. Click on the image for a larger version.
Data as Memories
It’s really cool how just glancing at these visualizations brings back many memories about certain periods and experiences during the past decade of my life. I can see when I first changed my diet to Paleo/Bulletproof (2012/2013), when I trained for an ran the New York City Marathon (2011), periods of “bulking up” (gaining weight while also losing body fat), playing lots of soccer, and conversely, periods of less activity.
Create Your Own Body Composition Data Visualizations!
I’ve posted all of my code on GitHub, so feel free to “fork” my repo, create your own .csv file, then generate your own charts. Enjoy!