aes() affects the whole graph- x and y, colours, all that stuff will be applied as default to geom_point, geom_line, etc.

But you can override each in a plus call.

Standard view

aes() applies to all elements

# install.packages("palmerpenguins")

library(palmerpenguins)
library(tidyverse)

penguins %>% 
  ggplot(aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
  geom_point() + geom_rug()
## Warning: Removed 2 rows containing missing values (geom_point).

Override

We can override in each case

penguins %>% 
  ggplot(aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
  geom_point() + 
  geom_rug(colour = "black")
## Warning: Removed 2 rows containing missing values (geom_point).

Or

penguins %>% 
  ggplot(aes(x = bill_length_mm, y = flipper_length_mm, colour = species)) +
  geom_point(colour = "black") + 
  geom_rug()
## Warning: Removed 2 rows containing missing values (geom_point).