Raster Map Legend – How to Create a Legend for Categorical Data in R

cartographylegendrraster

I would like to plot a raster containing 4 different values (1) with a categorical text legend describing the categories such as 2 but with colour boxes.

I've tried using legend such as :

legend( 1,-20,legend = c("land","ocean/lake", "rivers","water bodies"))

but I don't know how to associate one value to the displayed color. Is there a way to retrieve the colour displayed with 'plot' and to use it in the legend?

Initial rasterenter image description here

Raster with legend
enter image description here

Best Answer

You are not providing a reproducible code, so I made up a simple example that hopefully will allow you to tailor it to your needs.

library(raster)
r <- raster(volcano)
plot(r, legend = FALSE, col = rev(terrain.colors(4)))
legend("topright", legend = c("category 1", "category 2", "category 3", "category 4"), fill = rev(terrain.colors(4)))

enter image description here

Related Question