Arranged by current obesity prevalence (highest to lowest), each country’s trajectory reveals its obesity trend from 2005–2022. Red signals the top 10 fastest-rising obesity epidemics; teal indicates nations successfully reducing obesity; grey shows moderate changes.
#TidyTuesday
Facet Graph
Author
Aditya Dahiya
Published
October 20, 2025
About the Data
This week’s dataset celebrates World Food Day and the 80th anniversary of the Food and Agriculture Organization of the United Nations (FAO). The data comes from the FAO’s Suite of Food Security Indicators, a comprehensive collection developed following recommendations from the Committee on World Food Security. These indicators capture various dimensions of food insecurity using expert judgment and data with sufficient coverage to enable meaningful comparisons across regions and over time. The dataset includes measurements across multiple indicators, regions, and time periods, with confidence intervals provided for many observations to reflect measurement uncertainty. Values are expressed in diverse units including grams per capita per day, kilocalories per capita per day, international dollars, percentages, and indices, allowing for a multifaceted assessment of global food security trends.
Figure 1: Each panel represents a country, ranked by 2022 obesity rates from highest (top-left) to lowest (bottom-right). The x-axis shows years from 2005 to 2022, while the y-axis displays the prevalence of obesity in the adult population as a percentage. Lines trace each country’s trajectory over time, with values labeled at the beginning and end of the period.
How I Made This Graphic
Loading required libraries
Code
pacman::p_load( tidyverse, # All things tidy scales, # Nice Scales for ggplot2 fontawesome, # Icons display in ggplot2 ggtext, # Markdown text support for ggplot2 showtext, # Display fonts in ggplot2 colorspace, # Lighten and Darken colours sf, # for maps patchwork # Composing Plots)pacman::p_load(geofacet)food_security <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2025/2025-10-14/food_security.csv') |> janitor::clean_names()
Visualization Parameters
Code
# Font for titlesfont_add_google("Saira",family ="title_font")# Font for the captionfont_add_google("Saira Condensed",family ="body_font")# Font for plot textfont_add_google("Saira Extra Condensed",family ="caption_font")showtext_auto()# A base Colourbg_col <-"white"seecolor::print_color(bg_col)# Colour for highlighted texttext_hil <-"grey40"seecolor::print_color(text_hil)# Colour for the texttext_col <-"grey30"seecolor::print_color(text_col)line_col <-"grey30"# Define Base Text Sizebts <-80# Get the actual colors from chosen paletteday_colors <- paletteer::paletteer_d("ghibli::PonyoDark", n =7)names(day_colors) <-c("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")# Caption stuff for the plotsysfonts::font_add(family ="Font Awesome 6 Brands",regular = here::here("docs", "Font Awesome 6 Brands-Regular-400.otf"))github <-""github_username <-"aditya-dahiya"xtwitter <-""xtwitter_username <-"@adityadahiyaias"social_caption_1 <- glue::glue("<span style='font-family:\"Font Awesome 6 Brands\";'>{github};</span> <span style='color: {text_hil}'>{github_username} </span>")social_caption_2 <- glue::glue("<span style='font-family:\"Font Awesome 6 Brands\";'>{xtwitter};</span> <span style='color: {text_hil}'>{xtwitter_username}</span>")plot_caption <-paste0("**Data:** Carl Börstell; The Food and Agriculture<br>Organization of the United Nations (FAO)","<br>**Code:** ", social_caption_1,"<br>**Graphics:** ", social_caption_2)rm( github, github_username, xtwitter, xtwitter_username, social_caption_1, social_caption_2)# Add text to plot-------------------------------------------------plot_title <-"Obesity Trajectories in 85 Nations"plot_subtitle <-"Countries displayed by 2022 obesity rates. Red identifies the top 10 nations experiencing the most dramatic obesity increases since 2005, while green signals those with lesser increases. Most countries in grey show moderate or mixed trends over nearly two decades."|>str_wrap(135)str_view(plot_subtitle)
# Saving a thumbnaillibrary(magick)# Saving a thumbnail for the webpageimage_read(here::here("data_vizs","tidy_world_food_day.png")) |>image_resize(geometry ="x400") |>image_write( here::here("data_vizs","thumbnails","tidy_world_food_day.png" ) )