eliocamp/metR

Default to `name = waiver()` on `scale_*_latitude()` and `scale_*_longitude()`

brunomioto opened this issue · 1 comments

It should be name = waiver() by default just like ggplot2, because axis.title just disappears when use scale_*_lat/lon() without any warning

# packages
library(ggplot2)
library(ggmap)
library(metR)

# get map
m <- get_map(location=c(lon=0,lat=0),zoom=5)

# create map - default
ggmap(m) +
  labs(
    x = "New Longitude title",
    y = "New Latitude title"
  )+
  scale_x_longitude(breaks = seq(-10,10,5)) +
  scale_y_latitude(breaks = seq(-10,10,5))
#> Scale for x is already present.
#> Adding another scale for x, which will replace the existing scale.
#> Scale for y is already present.
#> Adding another scale for y, which will replace the existing scale.

# create map - with names
ggmap(m) +
  labs(
    x = "New Longitude title",
    y = "New Latitude title"
  )+
  scale_x_longitude(breaks = seq(-10,10,5), name = waiver()) +
  scale_y_latitude(breaks = seq(-10,10,5), name = waiver())
#> Scale for x is already present.
#> Adding another scale for x, which will replace the existing scale.
#> Scale for y is already present.
#> Adding another scale for y, which will replace the existing scale.

Created on 2022-11-29 with reprex v2.0.2

The default is to not to add a title since when drawing a map it's fairly obvious what the axis mean. Adding a scale always overrides labels set with labs(), but that's ggplot2 behaviour. Toy should always use labs() after the scales.