Visualizing how Vietnamese people spend their time using moving bubble charts
This project uses d3blocks' moving bubbles to animate how individual respondents from a Vietnamese time-use survey transition between daily activities over time. Each bubble represents a person; its position reflects their current activity state, creating an organic, living visualization of collective behavior.
Raw survey data uses numeric codes (e.g. Q401 = 1501) to represent activities. A custom get_activity() function translates 50+ codes into 15 human-readable categories, applied at read time via Pandas converters.
A self-contained HTML file with embedded D3.js. Each bubble = one respondent. Bubbles drift between activity clusters as time advances, revealing patterns in daily Vietnamese life.
▶ Watch the demo on YouTube to see the animation in action — bubbles transition fluidly between Sleeping, Working, Eating, Travelling and more across the full survey day.
iloc[:len/4]) to ensure the browser can render the animation without lag in Google Colab.get_activity() and convert_time() are passed as Pandas converters, keeping the transformation pipeline clean and inline..html file with D3.js embedded — shareable anywhere without a server, database, or Python runtime.By combining Pandas' converter pipeline with d3blocks' moving bubble chart, this project transforms a flat time-use survey CSV into a living, breathing animation. Viewers can observe collective rhythms — when people sleep, eat, work, and travel — in a single, shareable interactive file. A demonstration that data visualization can be both technically rigorous and genuinely engaging.