As part of learning / encouraging others to learn to create beautiful maps I am hoping to participate in a 30 day Map Challenge. While the formal Challenge is over here https://30daymapchallenge.com/ I am just trying to create as many charts as I can this month with no particular theme. I am also hoping to do this as a way to speed up my process and be ok with incompleteness in Visualizations. Hence I am trying to do this in a “timed” fashion.

I do not think I have the time to do one viz a day but how many ever as possible this month is the aim. I think it will be a nice community activity for anyone interested.

This is my entry for today.


@deepakvarughese nice work on the Mallapally map!

Perhaps we can convert the best of your 30 into R case studies for our repository, to be available to the public for practice (to follow in your footsteps)?

We will be eager to follow your coming posts!

Thank You Neale! Ofcourse always happy to contribute to the repo in whatever way possible!

This is Map 2 from this series.

Today we look at simple Chloropleth Maps. We will demonstrate this by looking at the distribution of population in the South Indian State of Kerala.

This is my entry for Day2

1 Like

Nice one! Very cool font-type. I’m thinking about participating in this challenge too, when I do my first I’ll share it here. I’m going to focus on locations in Brazil, it’s a cool way to learn more about the territories of another country and share about ours.

Here is my first map! The urban concentrations in Brazil, categorized by population size.

Here’s the code to generate:

# Install geobr package and load tidyverse
devtools::install_github("ipeaGIT/geobr", subdir = "r-package")

# Load the geobr package and read urban concentration data
urban <- geobr::read_urban_concentrations()

# Create categories for population
urban <- urban %>%
                cat_pop = cut(pop_total_2010,
                              breaks = c(0, 50000, 200000, 500000, Inf),
                              labels = c("< 50K", "50K - 200K", "200K - 500K", "> 500K"))

# Load country boundary data
BR <- geobr::read_country()

# Create a ggplot2 plot
ggplot() +
        # Add the country boundaries with a gray fill
        geom_sf(data = BR, fill = "grey90", color = "white") +
        # Add the urban concentration data with color and fill aesthetics
        geom_sf(data = urban, aes(fill = cat_pop, color = cat_pop), alpha = 1) +
        # Customize the fill colors based on population categories
        scale_fill_manual(values = c("< 50K" = "pink", "50K - 200K" = "coral", "200K - 500K" = "red", "> 500K" = "red4")) +
        # Remove the legend for the color scale
        scale_color_manual(values = c("< 50K" = "pink", "50K - 200K" = "coral", "200K - 500K" = "red", "> 500K" = "red4"), guide = "none") +
        # Customize plot labels and title
                title = "Urban Concentrations in Brazil", 
                subtitle = "Source: IBGE, 2015",
                fill = "Population size"
        ) +
        # Apply a classic theme with customized settings
        theme_dark(base_line_size = 1) +
                legend.position = "top",
                legend.title = element_text(hjust = 0.5, size = 12),
                legend.box = "horizontal",
                plot.title = element_text(hjust = .5),
                plot.subtitle = element_text(hjust = .5)

1 Like