I expected alpha to work for linestring sf object as in geom_line. Here is a simple example:
library(ggplot2)
library(sf)
l <- st_linestring(rbind(c(2,2), c(3,3), c(3,2)))
lsf <- st_sf(geometry = st_sfc(l, crs = 4326))
ggplot(data = lsf) + geom_sf(data = lsf, lwd = 2)
ggplot(data = lsf) + geom_sf(data = lsf, alpha = 0.5, lwd = 2)
both plots above are identical.
If I try with polygon, fill transparency changes but outline remains the same.
p <- st_polygon(list(rbind(c(2,2), c(3,3), c(3,2), c(2,2))))
psf <- st_sf(geometry = st_sfc(p, crs = 4326))
ggplot(data = psf) + geom_sf(data = psf)
ggplot(data = psf) + geom_sf(data = psf, alpha = 0.5)
Using geom_line, it works:
lpt <- st_coordinates(lsf) %>% tbl_df()
ggplot() + geom_line(data = lpt, aes(x = X, y = Y), alpha = 0.2)
Since this concerns ggplot2, I'm adding @hadley
Yeah, the support for non-polygon features is not great. I'm aware of it and will look at in more detail when I'm next working on ggplot2 (so feel free to close this issue)
Error in geom_sf() : could not find function "geom_sf" still have this issue hot to fix?
@Gustavoetal, are you using the development version of ggplot2? The CRAN version doesn't have geom_sf yet. See the news for the next release.
Yes that was the case, I have the stable version and now is working, thanks
Has alpha for linestrings been implemented yet in geom_sf?
It does not seem so but a new issue has been opened on the ggplot2 side: https://github.com/tidyverse/ggplot2/issues/3589
Most helpful comment
Yeah, the support for non-polygon features is not great. I'm aware of it and will look at in more detail when I'm next working on ggplot2 (so feel free to close this issue)