Minimalist maps, just reproducing a blogpost on freakometrics.

library(data.table)
library(maps)
library(maptools)
# get data
data("world.cities")
df = setDT(world.cities)

airports = readShapePoints("ne_10m_airports.shp")
roads = readShapeLines("ne_10m_roads.shp")
railroads = readShapeLines("ne_10m_railroads.shp")
ports = readShapePoints("ne_10m_ports.shp")

cities

# all cities
with(df, plot(long, lat, cex = 0.3, col = "royalblue")); grid()
title("Cities")

# all cities with pop > 100 K
with(df[pop > 100e3], plot(long, lat, cex = 0.3, col = "royalblue")); grid()
title("Cities > 100,000 inhabitants")

airports

source data: http://www.naturalearthdata.com/downloads/10m-cultural-vectors/

plot(airports, cex = 0.3, pch = 1, col = "royalblue", axes = T); grid()
title("Airports")

ports

plot(ports, cex = 0.3, pch = 1, col = "royalblue", axes = T); grid()
title("Ports")

roads

plot(roads, cex = 0.3, col = "royalblue", axes = T, lwd = 0.3); grid()
title("Roads")

railroads

plot(railroads, cex = 0.3, col = "royalblue", axes = T, lwd = 0.3); grid()
title("Railroads")