Mapping to a ‘t'(map)

By HighlandR


(This article was first published on HighlandR, and kindly contributed to R-bloggers)

tmap More maps of the Highlands?

Yep, same as last time, but no need to install dev versions of anything, we can get awesome maps courtesy of the tmap package.

Get the shapefile from the last post


scot  read_shape("SG_SIMD_2016.shp", as.sf = TRUE)
highland  (scot[scot$LAName=="Highland", ])

#replicate plot from previous blog post:

quint  tm_shape(highland) +
  tm_fill(col = "Quintile",
          palette = viridis(n=5, direction = -1,option = "C"),
          fill.title = "Quintile",
          title = "SIMD 2016 - Highland Council Area by Quintile")

quint # plot

ttm() #switch between static and interactive - this will use interactive
quint # or use last_map()
# in R Studio you will find leaflet map in your Viewer tab

ttm() # return to plotting

The results:

One really nice thing is that because the polygons don’t have outlines, the DataZones that are really densely packed still render nicely – so no ‘missing’ areas.

A static image of the leaflet map:


Here I take the rank for all the Highland data zones, and the overall SIMD rank, and create a small multiple

small_mult tm_shape(highland) +
  tm_fill(col = c("IncRank","EmpRank","HlthRank","EduRank",
          palette = viridis(n=5, direction = -1,option = "C"),
          title=c("Income Rank", "Employment Rank","Health Rank","Education Rank",
                  "General Access Rank","Crime Rank", "Housing Rank","Overall Rank"))


Let’s take a look at Scotland as a whole, as I assume everyone’s pretty bored of the Highlands by now:

#try a map of scotland
scotplot  tm_shape(scot) +
  tm_fill(col = "Rank",
          palette = viridis(n=5, direction = -1,option = "C"),
          fill.title = "Overall Rank",
          title = "Overall-Rank")
scotplot # bit of a monster


With the interactive plot, we can really appreciate the density of these datazones in the Central belt.


Here, I’ve zoomed in a bit on the region around Glasgow, and then zoomed in some more:



I couldn’t figure out how to host the leaflet map within the page (Jekyll / Github / Leaflet experts please feel free to educate me on that 🙂 ) but, given the size of the file, I very much doubt I could have uploaded it to Github anyway.

Thanks to Roger Bivand (@RogerBivand) for getting in touch and pointing me towards the tmap package! It’s really good fun and an easy way to get interactive maps up and running.

To leave a comment for the author, please follow the link and comment on their blog: HighlandR. offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more…

Source:: R News

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.