-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
alpha in ggplot2 for geoms that have polygons and points affects any polygon interiors and points.
This only affects geom_boxplot and geom_sf (to my knowledge).
Conceptually, points and lines are generally treated consistently in ggplot2, apart from this (that I'm aware of). E.g. in how colour is applied to points and lines, or in in geom_pointrange where alpha affects both point and line.
So I think it'd be most intuitive, if in geoms with polygon interiors and points/lines, alpha only affected polygon interiors.
The most common use-case of the alpha argument in geom_sf is to affect the fill of polygons. It'd is nice to be able to set this once using update_geom_defaults. However, you can't do this, if you only want it to only affect polygons and not the points.
To fix this:
- in
geom_boxplot,outlier.alpha = NULLupdate to default to NA instead of inheriting fromalpha - in
geom_sf, update so that it only affects polygon interiors, regardless of the sf object geometry type
Related past issues to this were discussed in #1371 and #1523.
Thanks for your consideration, and sorry to bombard with issues :)
library(tidyverse)
library(sf)
d1 <- sf::st_read(system.file("shape/nc.shp", package = "sf"))
d2 <- sf::st_read(system.file("shape/nc.shp", package = "sf")) |>
sf::st_centroid()
bind_rows(d1, d2) |>
ggplot() +
geom_sf(fill = "red", alpha = 0.1)palmerpenguins::penguins |>
ggplot() +
geom_boxplot(
aes(x = flipper_length_mm,
y = species,
col = sex,
fill = sex),
alpha = 0.5,
)
#> Warning: Removed 2 rows containing non-finite outside the scale range
#> (`stat_boxplot()`).Created on 2024-07-18 with reprex v2.1.0

