30daymapchallenge
#1 points /r, illustator
using instagram's geospatial data, i created a visualization of popular check-in locations tagged with #ustrip across north america. the map draws from voratham tiabrat's dataset spanning january 2016 to october 2019, revealing distinct seasonal patterns in tourist activities. the dark-themed visualization shows the highest concentration of check-ins in summer (14,530) and fall (14,106), with noticeable clustering along the US coasts and major urban centers.
using r for spatial analysis with packages including ggplot
, rnaturalearth
, sf
, and dplyr
, and employing a lambert conformal conic projection, i then refined the visual presentation in adobe illustrator to create a clean, modern aesthetic with seasonal color coding from winter blues to summer greens.
#2 lines /python, photoshop
leveraging nyc open data on police-reported motor vehicle collisions, i created a dynamic visualization of manhattan's crash patterns across its street network. using python's geospatial libraries, i developed a normalized motor vehicle collision (mvc) index that accounts for street length, proximity to crash sites, and collision frequency.
the data spans january to october 2023, with each street segment's mvc index calculated through a multi-step process: identifying nearest network edges using osmnx
, computing crash frequencies, normalizing by street length, and applying logarithmic transformation for better distribution visualization. the final map employs a dark theme with neon-like highlights, featuring both a histogram showing the statistical distribution of the mvc index and a detailed street-level visualization where brighter segments indicate higher collision frequencies.
all the animated images are made via photoshop.
#3 polygons /r, illustratormapping gender dynamics in philadelphia's workforce, i explored labor force participation rate gaps across the city using 2021 census data. the resulting choropleth map reveals a fascinating spatial pattern: areas in pink show higher female workforce participation, while green indicates male-dominated zones.
diving deeper through correlation analysis, i discovered interesting connections - management roles and education levels strongly correlate with gender balance, while manufacturing shows an inverse relationship. using r's spatial packages (tidycensus
, sf
, tigris
), i transformed raw census data into this visualization that tells a story about workforce gender dynamics in the city of brotherly love.
#4 a bad map /arcgis, illustratora data visualization exploring patterns of crimes against women in los angeles using spatial density analysis. leveraging r for geospatial processing, this map employs viridis color mapping and kernel density estimation to reveal concentrated areas of reported incidents.
#6 asia /arcgis, photoshopvisualizing the vulnerability of southeast asia's coral reefs, i mapped coastal development threats using data from the world resources institute's "reefs at risk revisited" project. the visualization employs a three-tier threat classification system highlighted in pink (high), lime (medium), and teal (low), set against a distinctive dotted pattern representing deeper waters.
focusing on local human impacts—from overfishing to coastal development and pollution—the map reveals critical areas where coral ecosystems face increasing pressure from human activities.
#7 navigation /arcgis, illustrator
visualizing yosemite national park's trail network, i created this topographic map using dem data and routes data from the national park service. the visualization highlights trail routes in subtle dotted lines against a detailed terrain backdrop, with trailhead locations marked in bright yellow for easy identification.
from mirror lake to chilnualna falls, key points of interest and ranger stations are clearly marked across the park's dramatic landscape.
#8 africa /python, photoshopmapping africa's linguistic landscape, i created an animated visualization using data from dryer and haspelmath's "the world atlas of language structures online" (2013).
each glowing point represents a language's geographic location, with size indicating language concentration and colors distinguishing between language families. leveraging python's spatial libraries (geopandas
, matplotlib
) and a dark-themed basemap, the visualization reveals striking patterns – particularly the dominance of niger-congo languages across central and southern africa.
data: dryer, matthew s. & haspelmath, martin (eds.) 2013. the world atlas of language structures online. leipzig: max planck institute for evolutionary anthropology. (available online at https://wals.info)
#9 hexagons /python, illustratormapping the nightlife pulse of european cities through a hexagonal lens, i analyzed nightclub distributions across amsterdam, madrid, paris, and berlin using openstreetmap data.
each city's nightclub locations are aggregated into 20-kilometer hexagonal grids, revealing distinct spatial patterns: paris shows a concentrated core with scattered peripheral venues, berlin displays a more dispersed pattern across its central districts, while madrid and amsterdam exhibit tight clustering in their entertainment zones.
using python's spatial libraries (h3
, osmnx
, geopandas
), i transformed point data into this coral-hued visualization where darker hexagons indicate higher nightclub density.
#10 & #12 americas /r, illustratorfollowing milos-agathon's tutorial on wind visualization, i created this streamline map showing wind patterns across the americas using era5 hourly reanalysis data from november 10, 2023.
the visualization combines wind speed and direction data, using r's spatial packages (ecmwfr
, metR
, ggplot2
) to transform meteorological variables into flowing streamlines.
wind speeds, ranging from 3 to 17 meters per second, are represented through both line thickness and color intensity in the mako palette.
#11 retro /pythonvisualizing the tragic patterns of migrant disappearances and deaths from 2014 to 2023, i created this map using data from the missing migrants project, an initiative of the international organization for migration (iom).
using python's spatial libraries (geopandas
, plotly
, folium
), i mapped over 13,000 incidents across global migration routes, where darker red concentrations indicate higher numbers of missing or deceased migrants.
complementary bar charts reveal the most affected routes—with the us-mexico border crossing showing the highest incident count—and regional patterns highlighting the mediterranean and north africa as critical areas of concern.
each point represents an incident, which indicates migrants' location of missing or death. these numbers represent not just statistics, but individuals and the families and communities they leave behind.
#13 choropleth /kepler.gl, illustratorusing tokyo open data on barrier-free facilities, i created a choropleth grid visualization of wheelchair-accessible restrooms across the tokyo metropolitan area.
the data points, aggregated into 1.2-kilometer grid cells, reveal the spatial distribution of accessible facilities, with darker purple indicating higher concentration (up to 67 facilities per grid). created using kepler.gl, the map highlights accessibility patterns across different districts, showing denser coverage in central tokyo areas like shinjuku and shibuya, while outlying regions generally show lighter concentrations.
#14 europe /r, illustratormapping train station distribution across europe using r's spatial packages (sf
, ggplot2
). the main visualization uses a logged station count in 0.5-degree grid cells to handle the skewed concentration of stations in urban centers. below, three density maps break down the patterns by station type - airports, main stations, and city stations - revealing different spatial clustering.
while main stations show dense coverage across central europe, airport stations concentrate around major hubs, and city stations follow population centers.
data is from the trainline-eu project (https://github.com/trainline-eu/stations/).
#15 openstreetmap /pythonexploring walkability in major cities using osmnx and python. i created isochrone maps for 12 global cities, from manhattan to tokyo, showing how far you can walk from the city center in 5 to 30 minutes.
using a standard walking speed of 3.5 km/h and a 2-km radius, the blue gradients reveal each city's unique pedestrian reach. comparing the patterns highlights how different urban layouts - from chicago's grid to london's organic growth - shape walking accessibility in city centers.
#16 oceania /arcgis, illustratormapping sea turtle nesting sites across oceania using data from the state of the world's sea turtles (swot) database, a collaborative effort hosted by duke university's seamap platform.
the visualization shows both nesting density (from 1 to 17,000 turtles per grid) and species distribution, including caretta caretta, chelonia mydas, and dermochelys coriacea among others. created in arcgis with a bathymetric basemap, the patterns reveal concentrated nesting areas along papua new guinea's coastline and throughout the coral sea.
#17 flow /arcgis online, illustratorvisualizing six years of global shipping movements using ais position data (2015-2021). the map shows vessel traffic density in 500m grid cells, with brighter lines indicating higher activity.
downloaded from arcgis online and based on the imf's world seaborne trade monitoring system, the visualization reveals intense maritime corridors across the atlantic and intricate shipping networks in southeast asia.
data: mf's world seaborne trade monitoring system (cerdeiro, komaromi, liu and saeed, 2020)
#18 atmosphere /arcgis online, illustrator
visualizing global co2 emissions using 2018 data from the copernicus atmospheric monitoring service (cams). mapped against a dark background, the visualization uses a green-yellow-purple gradient to show emission intensities, revealing concentrated outputs in urban and industrial areas.
data: copernicus atmospheric monitoring service (cams) information for 2018
#19 5 minute mapmapping global marine species richness using 2020 data from aquamaps, with species counts ranging from 1 to over 9,800 per area. the turquoise-coral color scheme reveals biodiversity hotspots in warmer waters, with detailed insets showing patterns in the mediterranean (#a) and central america (#b). created in 5 minutes using raw species distribution data, the visualization highlights how marine biodiversity varies across different ocean regions and depths.
data: kaschner, k., et al. (2019). aquamaps: predicted range maps for aquatic species. www.aquamaps.org
#21 raster
analyzing urban growth patterns in six asian cities (daejeon, kuala lumpur, osaka, phnom penh, shijiazhuang, and taipei) using glad's built-up lands extent data from 2000-2020. data: glad built-up lands extent and change (https://glad.umd.edu) & openstreetmap
processed the raster data in r by cropping 20km circular buffers around each city center (70km for phnom penh), then classified areas into no built-up (white), new development (yellow), and existing urban zones (grey). overlaid with major road networks from openstreetmap, the patterns reveal distinct expansion stories: osaka's established urban core, phnom penh's rapid outward growth, and shijiazhuang's grid-based development spreading into surrounding areas.
#25 antarctica
visualizing real-time ocean currents around antarctica using hycom (hybrid coordinate ocean model) data from november 11-20, 2023. modified via arcgis online, the data shows current movements in 3-hour intervals, rendered as flowing white lines against a dark background.
#27 dotmapping racial and ethnic distribution across miami metropolitan area using 2021 acs 5-year census data. i retrieved block group level demographic data for miami-dade, broward, and palm beach counties through census api (cenpy), then processed the data using geopandas.
the dot density technique randomly places one dot per 50 people within their respective block groups, maintaining demographic proportions while protecting privacy. written in python, the process includes merging tiger/line shapefiles with census data, generating weighted random points, and styling seven demographic categories from white to hispanic populations
#29 populationmapping employment density across the san francisco-oakland-berkeley metropolitan area using 2019 lodes (longitudinal employer-household dynamics lehd origin-destination employment statistics) data. each pixel represents the mean number of workers in that grid cell, ranging from 60 to 600+ workers, visualized in a green-to-purple gradient. the pattern reveals major employment centers in san francisco, berkeley, and along the east bay corridor through oakland to fremont, with concentrated workforce clusters visible in areas like palo alto and concord.
copyright @liuhaobing, hit the link to github: https://github.com/cyber-hbliu/30DayMapChallenge