df <-
crossing(
conc = set_cu(c(0.5, 25), "mM"),
volume = set_cu(c(0.2, 90, 400), "mL")
) |>
mutate(amount = conc * volume)
df |>
mutate(conc = fct_inorder(format(conc))) |>
ggplot() +
aes(x = volume, y = amount, color = conc) +
geom_line() +
facet_wrap(~conc, scales = "free") +
scale_x_units(transform = "log10", auto_scale = TRUE) +
scale_y_units(transform = "log10", auto_scale = TRUE)