eliocamp / metR

Tools for Easier Analysis of Meteorological Fields
https://eliocamp.github.io/metR/
139 stars 22 forks source link

Mapear territorios con coord_polar #144

Closed lemuscanovas closed 3 years ago

lemuscanovas commented 3 years ago

Hola Elio,

Antes de nada, gracias por el trabajo que haces. Estoy intentando plotear los paises en un ggplot mapado con coord_polar, y no veo la forma de hacerlo.

Te adjunto el churro que me ha salido:

Rplot

Sin embargo, no hay problema si tarbajo con coord_sf y el objeto borders en esta clase sf:

Rplot02

Y el código del plot polar:

borders <- rnaturalearth::ne_countries(returnclass = "sp")
ggplot()+
  geom_contour_fill(slp_q90_anomaly, 
                    mapping = aes(longitude,latitude,z = anom_slp),
                    binwidth = 1)+
  geom_polygon(data = borders,aes(long,lat,group = group),color = "black", lwd =1, fill = "transparent")+
  guides(fill = guide_colourbar(barwidth = 9, barheight = 0.5))+
  facet_grid(index~season) +
  scale_fill_divergent(name = "Z anomaly (m)") +
  scale_x_continuous(limits = c(-180,180), expand = c(0, 0))+
  scale_y_continuous(limits = c(15,90), expand = c(0,0))+
  theme_bw() +
  theme(
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    text = element_text(size = 10),
    strip.background = element_rect(fill = "transparent", color = NA),
    axis.title = element_blank(),
    axis.text = element_blank(),
    axis.ticks = element_blank(),
    legend.position = "bottom") +
  coord_polar()

Gracias de antemano y disculpa las molestias... Marc

eliocamp commented 3 years ago

geom_polar() no es lo ideal para esto, pero sirve más o menos bien. El problema es que el centro del círculo (osea, el cero de la coordenada radial) es el mínimo valor del eje y. Lo que significa que el hemisferio sur queda en el centro. SI querés plotear el hemisferio norte tenés que usar -lat en vez de lat.

lemuscanovas commented 3 years ago

Gracias por el apunte, Elio. Saludos!