Leaflet is a really good package for creating interactive maps. Here I’ve put together an example for visualising earthquake data from around Fiji.
library(leaflet)
library(htmltools)
data(quakes)
head(quakes)
## lat long depth mag stations
## 1 -20.42 181.62 562 4.8 41
## 2 -20.62 181.03 650 4.2 15
## 3 -26.00 184.10 42 5.4 43
## 4 -17.97 181.66 626 4.1 19
## 5 -20.42 181.96 649 4.0 11
## 6 -19.68 184.31 195 4.0 12
pal <- colorNumeric(
palette = "Reds",
domain = quakes$mag)
leaflet(quakes) %>%
addProviderTiles("CartoDB.Positron") %>%
setView(mean(quakes$long), mean(quakes$lat), zoom = 4)%>%
addCircleMarkers(lng=quakes$long, lat=quakes$lat,radius = quakes$mag,
color = ~pal(quakes$mag), stroke = FALSE, fillOpacity = 0.7) %>%
addLabelOnlyMarkers(~long, ~lat, label = as.character(paste("Magnitude: ",quakes$mag))) #adding a pop up
Lots of other basemaps available - http://leaflet-extras.github.io/leaflet-providers/preview/
leaflet(quakes) %>%
addProviderTiles("Stamen.Watercolor") %>%
setView(mean(quakes$long), mean(quakes$lat), zoom = 4)%>%
addCircleMarkers(lng=quakes$long, lat=quakes$lat,radius = quakes$mag,
color = ~pal(quakes$mag), stroke = FALSE, fillOpacity = 0.7) %>%
addLabelOnlyMarkers(~long, ~lat, label = as.character(paste("Magnitude: ",quakes$mag))) #adding a pop up
leaflet(quakes) %>%
addProviderTiles("Esri.WorldImagery") %>%
setView(mean(quakes$long), mean(quakes$lat), zoom = 4)%>%
addCircleMarkers(lng=quakes$long, lat=quakes$lat,radius = quakes$mag,
color = ~pal(quakes$mag), stroke = FALSE, fillOpacity = 0.7) %>%
addLabelOnlyMarkers(~long, ~lat, label = as.character(paste("Magnitude: ",quakes$mag))) #adding a pop up