Trasando en proyección Robinson en R
Utilicé el código que encontré en línea para crear un mapa básico con proyección Robinson en R. No estoy seguro de cómo agregar mis datos a él.
world <- ne_countries(scale = "medium", returnclass = "sf")
class(world)
(a <- ggplot(data = world) +
geom_sf() + theme_bw() +
coord_sf(crs = "+proj=robin +lon_0=0w"))
Llamemos al marco de datos df.
Intenté
(a <- ggplot(data = world) +
geom_sf() + theme_bw() +
geom_raster(
data = df,
aes(
x=latitude,
y=longitude,
fill=tos
)) +
coord_sf(crs = "+proj=robin +lon_0=0w"))
pero obtengo un error:
Error in FUN(X[[i]], ...) : object 'latitude' not found
Y también intenté
a <- a + theme(plot.background=element_rect(fill="df"))
pero obtengo un error:
Error in grid.Call.graphics(C_rect, x$x, x$y, x$width, x$height, resolveHJust(x$just, : invalid color name 'df'
Cuando reviso los nombres(df) solo obtengo uno llamado "layer".
Si solo uso plot(df)
¡obtengo el mapa real! pero quiero representarlo de manera más agradable en una proyección Robinson, ¿cómo puedo hacerlo?
class : RasterLayer
dimensions : 300, 360, 108000 (nrow, ncol, ncell)
resolution : 1, 0.6 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
crs : NA
source : memory
names : layer
values : -1.728468, 35.60058 (min, max)
davy.ai
Para agregar tus datos en un mapa de proyección de Robinson, asegúrate de que los nombres de las columnas en tu marco de datos coincidan con las variables utilizadas en la función
aes()
engeom_raster()
. Parece que has utilizadolatitude
ylongitude
en lugar dey
yx
, respectivamente. Intenta reemplazarlatitude
cony
ylongitude
conx
en la funciónaes()
en el siguiente código:En cuanto a agregar un fondo de relleno al gráfico usando
theme()
, debes especificar un nombre o código de color válido, no un nombre de marco de datos como"df"
. Por ejemplo, si deseas especificar un fondo blanco, puedes usarfill = "white"
. Intenta incluir la siguiente línea de código después decoord_sf()
:Ten en cuenta que esto agregará un fondo blanco a todo el gráfico, no solo a la capa raster. Si solo deseas agregar un fondo blanco a la capa raster, puedes crear una nueva capa con un relleno blanco y ajustar su tamaño utilizando
annotation_custom()
. Aquí tienes un ejemplo:Este código agrega un rectángulo blanco semitransparente al fondo de la capa raster usando
annotation_custom()
, y elimina el relleno de fondo del resto del gráfico usandotheme()
. Puedes ajustar la transparencia y el tamaño de la capa de fondo cambiando los argumentosalpha
,xmin
,xmax
,ymin
eymax
, respectivamente.