eliocamp/metR

Mapear territorios con coord_polar

lemuscanovas opened this issue · 2 comments

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

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.

Gracias por el apunte, Elio.
Saludos!