Academic project developed for the Data Visualization course, as part of the Bachelor's Degree in Data Engineering and Data Science at the University of Coimbra.
This project explores the relationship between life expectancy, income, population and health-related indicators through a set of static, interactive and animated visualizations.
The project was inspired by global development visualizations, especially the relationship between health and income popularized by Hans Rosling.
The main goal was to build visualizations that help answer analytical questions about global development, inequality, health, income and demographic patterns over time.
The project focuses on questions such as:
- How are income and life expectancy related?
- Has inequality in life expectancy between countries decreased over time?
- How did the Second World War affect income and life expectancy trends?
- Do the most populated countries follow global development trends?
- How do modern indicators such as schooling and health expenditure relate to life expectancy?
- How can world maps help communicate changes in health and development indicators?
The project addresses five main analytical questions:
-
Health and income: What is the relationship between GDP per capita and life expectancy?
-
Global convergence: Has the dispersion of life expectancy between countries decreased over time?
-
Impact of the Second World War: How did income and life expectancy evolve before, during and after the war?
-
Demographic patterns: Do the most populated countries follow the global trend, or do they show different trajectories?
-
Modern social and health indicators: To what extent do schooling and health expenditure help explain differences in life expectancy?
The project combines multiple datasets related to:
- life expectancy;
- GDP per capita;
- population;
- health indicators;
- schooling;
- health expenditure.
The datasets used in the project are stored in the data/ folder.
data/
├── Life Expectancy Data.csv
├── lex.csv
├── gdp_pcap.csv
└── pop.csv
The data was cleaned, reshaped and merged using country-year combinations.
The project includes several visualizations.
A bubble chart showing the relationship between GDP per capita and life expectancy.
- x-axis: GDP per capita in logarithmic scale
- y-axis: life expectancy
- bubble size: population
- each bubble: one country
An animated version of the health-income visualization, showing how countries evolve over time.
A line visualization showing the global evolution of life expectancy, including:
- mean life expectancy;
- median life expectancy;
- interquartile range;
- Second World War period highlight.
A set of visualizations focused on the period before, during and after the Second World War.
It includes:
- average GDP per capita before, during and after the war;
- average life expectancy during the same period;
- country-level trajectories for selected countries.
Visualizations focused on the 2000–2015 period, analysing how modern social and health indicators relate to life expectancy.
It includes:
- correlation between indicators such as schooling, health expenditure, income and life expectancy;
- country trajectories over time.
Animated choropleth maps showing the global evolution of:
- life expectancy;
- schooling;
- health expenditure as a percentage of GDP.
- Python
- pandas
- NumPy
- Plotly
- Matplotlib
- Jupyter Notebook
.
├── README.md
├── meta2_VD.ipynb
├── requirements.txt
├── data/
│ ├── Life Expectancy Data.csv
│ ├── lex.csv
│ ├── gdp_pcap.csv
│ └── pop.csv
└── assets/
├── v1.png
├── v1b.png
├── v2.png
├── v3A.png
├── v3B.png
├── v3C.png
├── v4A.png
├── v4B.png
├── v5A.png
├── v5B.png
└── v5C.png
git clone https://github.com/catarinarabuge/life-expectancy-data-visualization.git
cd life-expectancy-data-visualizationpip install -r requirements.txtmeta2_VD.ipynb
The notebook contains the full workflow:
- data loading;
- data cleaning and reshaping;
- dataset merging;
- analytical questions;
- visualization design and implementation;
- interpretation of results.
The visualizations suggest that:
- countries with higher income generally tend to have higher life expectancy;
- global life expectancy has increased substantially over time;
- the Second World War caused visible disruptions in development trends;
- countries followed different trajectories depending on historical, demographic and economic factors;
- schooling, health expenditure and social indicators help explain differences in life expectancy in the modern period;
- animated maps and bubble charts are useful for communicating long-term global development patterns.
Course: Data Visualization Degree: Bachelor's Degree in Data Engineering and Data Science University: University of Coimbra / FCTUC Academic Year: 2025/2026
This project helped develop skills in:
- preparing and merging datasets from different sources;
- defining analytical questions;
- designing visualizations for analysis and communication;
- using visual encodings such as position, size, colour and animation;
- creating interactive and animated visualizations with Plotly;
- analysing global development patterns over time;
- communicating insights through visual storytelling.
This repository is a public portfolio version of an academic project. MacOS system files, notebook checkpoints, temporary files and private information are not included.
Academic project completed.