Leyenda de un mapa raster con datos categóricos

Me gustaría trazar un ráster que contiene 4 valores diferentes (1) con una leyenda de texto categórico que describe las categorías como2 pero con cajas de colores:

He intentado usar la leyenda como:

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

pero no sé cómo asociar un valor al color mostrado. ¿Hay alguna forma de recuperar el color mostrado con 'plot' y usarlo en la leyenda?

Respuestas a la pregunta(2)

Su respuesta a la pregunta