Please carefully read the statements below and check each box if you agree with the declaration. If you do not check all boxes, your assignment will not be marked. If you make a false declaration on any of these points, you may be investigated for academic misconduct. Students found to have breached academic integrity may receive official warnings and/or serious academic penalties. Please read more about academic integrity here. If you are unsure about any of these points or feel your assessment might breach academic integrity, please contact your course coordinator for support. It is important that you DO NOT submit any assessment until you can complete the declaration truthfully.
By checking the boxes below, I declare the following:
I have not impersonated, or allowed myself to be impersonated by, any person for the purposes of this assessment
This assessment is my original work and no part of it has been copied from any other source except where due acknowledgement is made. Due acknowledgement means the following:
No part of this assessment has been written for me by any other person except where such collaboration has been authorised by the lecturer/teacher concerned.
I have not used generative “AI” tools for the purposes of this assessment.
Where this work is being submitted for individual assessment, I declare that it is my original work and that no part has been contributed by, produced by or in conjunction with another student.
I give permission for my assessment response to be reproduced, communicated, compared and archived for the purposes of detecting plagiarism.
I give permission for a copy of my assessment to be retained by the university for review and comparison, including review by external examiners.
I understand that:
Plagiarism is the presentation of the work, idea or creation of another person or machine as though it is your own. It is a form of cheating and is a very serious academic offence that may lead to exclusion from the University. Plagiarised material can be drawn from, and presented in, written, graphic and visual form, including electronic data and oral presentations. Plagiarism occurs when the origin of the material used is not appropriately cited.
Plagiarism includes the act of assisting or allowing another person to plagiarise or to copy my work.
I agree and acknowledge that:
I have read and understood the Declaration and Statement of Authorship above.
If I do not agree to the Declaration and Statement of Authorship in this context and all boxes are not checked, the assessment outcome is not valid for assessment purposes and will not be included in my final result for this course.
The original data visualisation selected for the assignment was as follows:
The original data visualization is a choropleth world map created by Visual Capitalist using data from the United Nations, Department of Economic and Social Affairs, Population Division, (2024). It presents the average life expectancy at birth in 2025 across different countries, using a colour scale from 55 to 90 years. The map highlights extremes by labelling Monaco as the country with the highest life expectancy and Nigeria as the lowest.
Objective
The purpose of this visualisation is to communicate global differences in life expectancy. By using colour shading across a world map, the visual seeks to help readers quickly identify which regions of the world have higher or lower life expectancy. But still there is a room for improvement in this data visualization.
Target Audience
Since the data is publicly available on the Visual Capitalist webpage, the target audience includes the general public. This includes casual readers seeking quick insights, as well as educators, policymakers, and professionals who may use the map as an entry point for discussion.
The original data visualization chosen could be improved in the three following ways:
Issue 1 - Colour Scale and Accessibility
Example - The map uses a rainbow-like colour gradient (55–90 years) that is not colour-blind safe and makes it difficult to distinguish close values. For instance, neighbouring countries with small differences in life expectancy may appear more different than they really are.
Impact - This reduces accessibility for colour-blind viewers and risks misrepresenting.
Solution - Applying a sequential colour palette (e.g., a single hue light-to-dark scale) would improve interpretability and align with best practice
Issue 2 - Precision and Comparability
Example - The choropleth format makes it difficult to compare countries directly, especially small countries like Monaco or island states that are nearly invisible on the map. The main insight (Monaco vs Nigeria) is highlighted with labels, but intermediate rankings are unclear.
Impact - Readers cannot accurately compare or rank countries, which weakens the message.
Solution - A ranked bar chart or slopegraph reconstruction would improve precision and highlight both extremes and regional differences clearly.
Issue 3 - Labeling and Clarity
Example - Only two countries are labelled (Monaco and Nigeria).
Impact - This limits clarity and forces interpretation, especially for non-expert readers.
Solution - Adding clear axis titles, bar labels (exact values), and a caption explaining the data source would enhance readability.
# Load Packages
library(readxl)
library(dplyr)
library(ggplot2)
library(forcats) #handles categorical/factor variables
# File
wpp_path <- "/Users/chamudi/Desktop/RMIT/1st Year 2nd Semester/Data Visualization/Assignments/Assignment 2/Life Expectancy by Country in 2025.xlsx"
# Read and Tidy
wpp_raw <- read_excel(wpp_path, skip = 16)
# suppressWarnings stops noisy NAs
countries_2025 <- wpp_raw %>%
mutate(Year = suppressWarnings(as.numeric(Year))) %>%
filter(Year == 2025, Type == "Country/Area") %>%
transmute(
Country = `Region, subregion, country or area *`,
LifeExp = suppressWarnings(as.numeric(`0`)) # life expectancy at birth
) %>%
# removes missing/unrealistic values
filter(!is.na(LifeExp), LifeExp >= 40, LifeExp <= 95) %>%
arrange(desc(LifeExp)) %>%
mutate(Country = fct_reorder(Country, LifeExp)) #reorders country factors based on life expectancy
# Identify extremes
# slice_max / slice_min - Extract the country with the highest and lowest life expectancy.
country_hi <- countries_2025 %>% slice_max(LifeExp, n = 1) %>% pull(Country)
country_lo <- countries_2025 %>% slice_min(LifeExp, n = 1) %>% pull(Country)
countries_2025 <- countries_2025 %>%
mutate(Extremes = case_when(
Country == country_hi ~ "Highest",
Country == country_lo ~ "Lowest",
TRUE ~ "Other"
))
# Plot 1: All countries
p_all_countries <- ggplot(countries_2025, aes(x = Country, y = LifeExp, fill = Extremes)) +
geom_col() +
coord_flip() +
scale_fill_manual(values = c(
"Highest" = "#C2185B", # deep pink
"Lowest" = "#F48FB1", # light pink
"Other" = "grey80"
)) +
scale_y_continuous(breaks = seq(0, max(countries_2025$LifeExp, na.rm = TRUE), by = 5)) +
labs(
title = "Life Expectancy at Birth by Country (2025)",
subtitle = paste0("Highest: ", country_hi, " | Lowest: ", country_lo),
x = "Country",
y = "Life Expectancy (Years)",
caption = "Source: United Nations, Department of Economic and Social Affairs, Population Division (2024)"
) +
theme_minimal(base_size = 11) +
theme(
legend.title = element_blank(),
axis.text.y = element_text(size = 6) # many countries; keep labels compact
)
# Subset for zoomed comparison: Top & Bottom 15 Each
top_bottom_15 <- bind_rows(
countries_2025 %>% slice_max(LifeExp, n = 15),
countries_2025 %>% slice_min(LifeExp, n = 15)
) %>%
arrange(LifeExp) %>%
mutate(Country = factor(Country, levels = unique(Country)))
# Plot 2: Zoomed (Top & Bottom 15 with Labels)
p_zoom_top_bottom <- ggplot(top_bottom_15, aes(x = Country, y = LifeExp, fill = Extremes)) +
geom_col() +
geom_text(aes(label = round(LifeExp, 0)), hjust = -0.1, size = 3) +
coord_flip() +
scale_fill_manual(values = c(
"Highest" = "#C2185B",
"Lowest" = "#F48FB1",
"Other" = "grey80"
)) +
scale_y_continuous(breaks = seq(0, max(top_bottom_15$LifeExp, na.rm = TRUE), by = 5)) +
labs(
title = "Life Expectancy at Birth (Top & Bottom 15 Countries, 2025)",
subtitle = paste0("Highest: ", country_hi, " | Lowest: ", country_lo, " | Values rounded to whole years"),
x = "Country",
y = "Life Expectancy (years)",
caption = "Source: United Nations, Department of Economic and Social Affairs, Population Division (2024)"
) +
theme_minimal(base_size = 11) +
theme(legend.title = element_blank())
# Print
print(p_all_countries)
print(p_zoom_top_bottom)
In this section, Reconstruction, first plot has focused all the countries. In the second plot, rather than focusing on all ~200 countries, I focused on top 15 and bottom 15 countries. This choice was made for clarity and readability.
Including every country with labels results in a cluttered chart where country names overlap and values become unreadable. In the original map also it was the key weakness that it is difficult to extract precise comparisons.
The original visualization emphasized the extremes by labeling Monaco (highest) and Nigeria (lowest). By focusing on the top and bottom 15 countries, the top 10 life expectancy countries retains as the core message according to (Rao, 2024).
The original choropleth used a rainbow-like gradient, which can be misleading and difficult to interpret (especially for colour-blind viewers). All countries are shown in grey, while only Monaco (highest) and Nigeria (lowest) are highlighted in contrasting pink tones. It gives message without overwhelming them with unnecessary colour variation.
On the original choropleth, viewers had to estimate life expectancy values from a colour scale, making it difficult to compare countries accurately. The reconstruction uses a ranked bar chart, where differences are conveyed by the length and position of bars. This encoding method is far more precise, allowing viewers to make accurate comparisons at a glance. The zoomed view of the top and bottom 15 countries further enhances comparability by clearly showing the spread between the highest and lowest life expectancies.
The original visualisation only labelled Monaco and Nigeria, leaving most values unclear. In the reconstruction, the zoomed chart includes direct value labels (rounded to whole years), along with clear axis titles and a caption stating the data source.
RPubs Link - https://rpubs.com/chamudi_a/DeconstructReconstructWebReport
United Nations, Department of Economic and Social Affairs, Population Division. (2024). World population prospects 2024, standard projections: Mortality. Retrieved September 08, 2025, from United Nations website: https://population.un.org/wpp/downloads?folder=Standard%20Projections&group=Mortality
Visual Capitalist. (2024, September 10). Mapped: Life expectancy by country in 2025. Visual Capitalist. Retrieved September 04, 2025, from https://www.visualcapitalist.com/mapped-life-expectancy-by-country-in-2025/