eliocamp / metR

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

Ajustar "breaks" en geom_text_contour #98

Closed lemuscanovas closed 4 years ago

lemuscanovas commented 5 years ago

Hola Elio,

Pues la cuestión es que no soy capaz de reproducir un mapa con el rango de etiquetas que yo quiero. A continuación un ejemplo reproducible:


library(raster)
library(ggplot2)
library(metR)

elev <- getData('SRTM', lon=5, lat=45)
elev <- crop(elev, c(9,9.5,40.5,41))
elev <- aggregate(elev,2)
elev_df <- as.data.frame(elev, xy = T)

a <- ggplot(elev_df, aes(x,y,fill = srtm_38_04)) + 
  geom_tile()+ 
  geom_contour2(binwidth = 500, aes(z = srtm_38_04), color = "white")

a + geom_text_contour(aes(z = srtm_38_04), 
                              stroke = 0.15)

Verás que pese a pedir un bindwidth de 500 m, después geom_text_contour define las etiquetas que quiere y no se como tomar el control.

Gracias de antemano. Marc

eliocamp commented 5 years ago

Hola! Como geom_text_contour calcula sus propios contornos según su propio binwidth (cada geom hace sus cosas por separado sin saber lo que hacen los demás). Para que las etiquetas coincidan con los contornos, tenés que usar el mismo binwidth en ambos casos:

¿Esto se acerca más a lo que querés?

library(raster)
library(ggplot2)
library(metR)

elev <- getData('SRTM', lon=5, lat=45)
elev <- crop(elev, c(9,9.5,40.5,41))
elev <- aggregate(elev,5)   # Le aumenté factor para que quedara más suave
elev_df <- as.data.frame(elev, xy = T)

a <- ggplot(elev_df, aes(x,y,fill = srtm_38_04)) + 
  geom_tile()+ 
  geom_contour2(binwidth = 500, aes(z = srtm_38_04), color = "white")

a + geom_text_contour(aes(z = srtm_38_04), 
                      binwidth = 500, 
                      rotate = FALSE,
                      stroke = 0.15)

image

lemuscanovas commented 5 years ago

Esto era exactamente lo que deseaba! Muchísimas gracias Elio :)

eliocamp commented 5 years ago

Buenísimo! Me di cuenta que la opción no está bien documentada, así que voy a tener que agregarlo. Gracias!