Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
This is a functionality I wanted to add for some time… and finally it’s here! I just pushed on GitHub a new version of rleafmap which brings the possibility to attach legends to data layers. You simply need to create a legend object with the function layerLegend and then to pass this object when you create your data layer via the legend argument. Thus, a map can contain different legends, each of them being independent. This is cool because it means that when you mask a data layer with the layer control, the legend will also disappear.
You can create legends with five different styles to better suit your data: points, lines, polygons, icons and gradient (see the graphic).
Legends for John Snow’s cholera map
I give as example a new version of the cholera map.
Here is the code:
devtools::install_github("fkeck/rleafmap")
devtools::install_github("Hackout2/epimap")
library(rleafmap)
library(epimap)
data(cholera)
n.chol <- ifelse(cholera$deaths$Count > 4, 6, cholera$deaths$Count) + 2
# Basemap layer
cdbpos.bm <- basemap("cartodb.positron.nolab")
# Legends
death.leg <- layerLegend(style = "points", title = "Deaths",
labels = c("1", "2", "3", "4", "> 4"), size = c(3, 4, 5, 6, 8),
fill.col = "red", fill.alpha = 0.9)
pumps.leg <- layerLegend(style = "icons", title = NA, labels = "Water pump",
png = "/home/francois/water.png", png.width = 31, png.height = 31)
# Data layers
death.points <- spLayer(cholera$deaths, legend = death.leg,
size = n.chol, fill.col = "red", fill.alpha = 0.9)
pumps.points <- spLayer(cholera$pumps, legend = pumps.leg,
png = "/home/francois/water.png",
png.width=31, png.height=31)
my.ui <- ui(layers = "topright")
writeMap(cdbpos.bm, pumps.points, death.points, interface = my.ui,
setView = c(51.5135, -0.137), setZoom = 17)
And here the result. Enjoy and check out the legend interactivity when you play with the layer selector
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
