Skip to content

Instantly share code, notes, and snippets.

@bensoltoff
Created December 4, 2019 20:13
Show Gist options
  • Save bensoltoff/e9104a6975f2c6c83c94a6eb12b792eb to your computer and use it in GitHub Desktop.
Save bensoltoff/e9104a6975f2c6c83c94a6eb12b792eb to your computer and use it in GitHub Desktop.
Massachusetts map example
library(tidyverse)
library(sf)
# import shapefile and extract Massachusetts
usa <- st_read("cb_2013_us_state_20m/cb_2013_us_state_20m.shp")
mass <- usa %>%
filter(NAME == "Massachusetts")
# identify city locations
cities <- tribble(
~city, ~lon, ~lat,
"Amherst", -72.5199, 42.3732,
"Worcester", -71.8023, 42.2626,
"Springfield", -72.5898, 42.1015,
"Boston", -71.0589, 42.3601,
"Plymouth", -70.6673, 41.9584,
)
# generate map
ggplot(data = mass) +
geom_sf() +
geom_point(data = cities, aes(x = lon, y = lat), shape = 1) +
geom_label(data = cities, aes(x = lon, y = lat, label = city), nudge_y = 0.075, size = 3) +
theme_minimal()
library(tidyverse)
library(sf)
#> Linking to GEOS 3.6.1, GDAL 2.1.3, PROJ 4.9.3

# import shapefile and extract Massachusetts
usa <- st_read("cb_2013_us_state_20m/cb_2013_us_state_20m.shp")
#> Reading layer `cb_2013_us_state_20m' from data source `/Users/soltoffbc/Projects/Computing for Social Sciences/temp/mass-map/cb_2013_us_state_20m/cb_2013_us_state_20m.shp' using driver `ESRI Shapefile'
#> Simple feature collection with 52 features and 9 fields
#> geometry type:  MULTIPOLYGON
#> dimension:      XY
#> bbox:           xmin: -179.1473 ymin: 17.88481 xmax: 179.7785 ymax: 71.35256
#> epsg (SRID):    4269
#> proj4string:    +proj=longlat +datum=NAD83 +no_defs
mass <- usa %>% 
  filter(NAME == "Massachusetts")

# identify city locations
cities <- tribble(
  ~city, ~lon, ~lat,
  "Amherst", -72.5199, 42.3732, 
  "Worcester", -71.8023, 42.2626, 
  "Springfield", -72.5898, 42.1015,
  "Boston", -71.0589, 42.3601,
  "Plymouth", -70.6673, 41.9584,
)

# generate map
ggplot(data = mass) +
  geom_sf() +
  geom_point(data = cities, aes(x = lon, y = lat), shape = 1) +
  geom_label(data = cities, aes(x = lon, y = lat, label = city), nudge_y = 0.075, size = 3) +
  theme_minimal()

Created on 2019-12-04 by the reprex package (v0.3.0)

Session info
devtools::session_info()
#> ─ Session info ──────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 3.6.1 (2019-07-05)
#>  os       macOS Mojave 10.14.6        
#>  system   x86_64, darwin15.6.0        
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/Chicago             
#>  date     2019-12-04                  
#> 
#> ─ Packages ──────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.6.0)
#>  backports     1.1.4   2019-04-10 [1] CRAN (R 3.6.0)
#>  broom         0.5.2   2019-04-07 [1] CRAN (R 3.6.0)
#>  callr         3.3.1   2019-07-18 [1] CRAN (R 3.6.0)
#>  cellranger    1.1.0   2016-07-27 [1] CRAN (R 3.6.0)
#>  class         7.3-15  2019-01-01 [1] CRAN (R 3.6.1)
#>  classInt      0.4-1   2019-08-06 [1] CRAN (R 3.6.0)
#>  cli           1.1.0   2019-03-19 [1] CRAN (R 3.6.0)
#>  colorspace    1.4-1   2019-03-18 [1] CRAN (R 3.6.0)
#>  crayon        1.3.4   2017-09-16 [1] CRAN (R 3.6.0)
#>  curl          4.0     2019-07-22 [1] CRAN (R 3.6.0)
#>  DBI           1.0.0   2018-05-02 [1] CRAN (R 3.6.0)
#>  desc          1.2.0   2018-05-01 [1] CRAN (R 3.6.0)
#>  devtools      2.2.0   2019-09-07 [1] CRAN (R 3.6.0)
#>  digest        0.6.20  2019-07-04 [1] CRAN (R 3.6.0)
#>  dplyr       * 0.8.3   2019-07-04 [1] CRAN (R 3.6.0)
#>  DT            0.8     2019-08-07 [1] CRAN (R 3.6.0)
#>  e1071         1.7-2   2019-06-05 [1] CRAN (R 3.6.0)
#>  ellipsis      0.2.0.1 2019-07-02 [1] CRAN (R 3.6.0)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 3.6.0)
#>  forcats     * 0.4.0   2019-02-17 [1] CRAN (R 3.6.0)
#>  fs            1.3.1   2019-05-06 [1] CRAN (R 3.6.0)
#>  generics      0.0.2   2018-11-29 [1] CRAN (R 3.6.0)
#>  ggplot2     * 3.2.1   2019-08-10 [1] CRAN (R 3.6.0)
#>  glue          1.3.1   2019-03-12 [1] CRAN (R 3.6.0)
#>  gtable        0.3.0   2019-03-25 [1] CRAN (R 3.6.0)
#>  haven         2.2.0   2019-11-08 [1] CRAN (R 3.6.0)
#>  highr         0.8     2019-03-20 [1] CRAN (R 3.6.0)
#>  hms           0.5.1   2019-08-23 [1] CRAN (R 3.6.0)
#>  htmltools     0.3.6   2017-04-28 [1] CRAN (R 3.6.0)
#>  htmlwidgets   1.3     2018-09-30 [1] CRAN (R 3.6.0)
#>  httr          1.4.1   2019-08-05 [1] CRAN (R 3.6.0)
#>  jsonlite      1.6     2018-12-07 [1] CRAN (R 3.6.0)
#>  KernSmooth    2.23-15 2015-06-29 [1] CRAN (R 3.6.1)
#>  knitr         1.24    2019-08-08 [1] CRAN (R 3.6.0)
#>  lattice       0.20-38 2018-11-04 [1] CRAN (R 3.6.1)
#>  lazyeval      0.2.2   2019-03-15 [1] CRAN (R 3.6.0)
#>  lifecycle     0.1.0   2019-08-01 [1] CRAN (R 3.6.0)
#>  lubridate     1.7.4   2018-04-11 [1] CRAN (R 3.6.0)
#>  magrittr      1.5     2014-11-22 [1] CRAN (R 3.6.0)
#>  memoise       1.1.0   2017-04-21 [1] CRAN (R 3.6.0)
#>  mime          0.7     2019-06-11 [1] CRAN (R 3.6.0)
#>  modelr        0.1.5   2019-08-08 [1] CRAN (R 3.6.0)
#>  munsell       0.5.0   2018-06-12 [1] CRAN (R 3.6.0)
#>  nlme          3.1-140 2019-05-12 [1] CRAN (R 3.6.1)
#>  pillar        1.4.2   2019-06-29 [1] CRAN (R 3.6.0)
#>  pkgbuild      1.0.5   2019-08-26 [1] CRAN (R 3.6.0)
#>  pkgconfig     2.0.2   2018-08-16 [1] CRAN (R 3.6.0)
#>  pkgload       1.0.2   2018-10-29 [1] CRAN (R 3.6.0)
#>  prettyunits   1.0.2   2015-07-13 [1] CRAN (R 3.6.0)
#>  processx      3.4.1   2019-07-18 [1] CRAN (R 3.6.0)
#>  ps            1.3.0   2018-12-21 [1] CRAN (R 3.6.0)
#>  purrr       * 0.3.2   2019-03-15 [1] CRAN (R 3.6.0)
#>  R6            2.4.0   2019-02-14 [1] CRAN (R 3.6.0)
#>  Rcpp          1.0.2   2019-07-25 [1] CRAN (R 3.6.0)
#>  readr       * 1.3.1   2018-12-21 [1] CRAN (R 3.6.0)
#>  readxl        1.3.1   2019-03-13 [1] CRAN (R 3.6.0)
#>  remotes       2.1.0   2019-06-24 [1] CRAN (R 3.6.0)
#>  rlang         0.4.0   2019-06-25 [1] CRAN (R 3.6.0)
#>  rmarkdown     1.15    2019-08-21 [1] CRAN (R 3.6.0)
#>  rprojroot     1.3-2   2018-01-03 [1] CRAN (R 3.6.0)
#>  rvest         0.3.4   2019-05-15 [1] CRAN (R 3.6.0)
#>  scales        1.0.0   2018-08-09 [1] CRAN (R 3.6.0)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.6.0)
#>  sf          * 0.7-7   2019-07-24 [1] CRAN (R 3.6.0)
#>  stringi       1.4.3   2019-03-12 [1] CRAN (R 3.6.0)
#>  stringr     * 1.4.0   2019-02-10 [1] CRAN (R 3.6.0)
#>  testthat      2.2.1   2019-07-25 [1] CRAN (R 3.6.0)
#>  tibble      * 2.1.3   2019-06-06 [1] CRAN (R 3.6.0)
#>  tidyr       * 1.0.0   2019-09-11 [1] CRAN (R 3.6.0)
#>  tidyselect    0.2.5   2018-10-11 [1] CRAN (R 3.6.0)
#>  tidyverse   * 1.2.1   2017-11-14 [1] CRAN (R 3.6.0)
#>  units         0.6-4   2019-08-22 [1] CRAN (R 3.6.0)
#>  usethis       1.5.1   2019-07-04 [1] CRAN (R 3.6.0)
#>  vctrs         0.2.0   2019-07-05 [1] CRAN (R 3.6.0)
#>  withr         2.1.2   2018-03-15 [1] CRAN (R 3.6.0)
#>  xfun          0.9     2019-08-21 [1] CRAN (R 3.6.0)
#>  xml2          1.2.2   2019-08-09 [1] CRAN (R 3.6.0)
#>  yaml          2.2.0   2018-07-25 [1] CRAN (R 3.6.0)
#>  zeallot       0.1.0   2018-01-28 [1] CRAN (R 3.6.0)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment