ggplot2
Docs
Theme Elements Cheatsheet (source)
Don’t use stat calculating geoms and set axis limits with scale_y_continuous
- See examples of the behavior in this thread
Defaults for any {ggplot2} geom using the default_aes field (i.e.
GeomBlah$default_aes
)Transparent Background
+ p theme( panel.background = element_rect(fill='transparent'), #transparent panel bg plot.background = element_rect(fill='transparent', color=NA), #transparent plot bg panel.grid.major = element_blank(), #remove major gridlines panel.grid.minor = element_blank(), #remove minor gridlines legend.background = element_rect(fill='transparent'), #transparent legend bg legend.box.background = element_rect(fill='transparent') #transparent legend panel )ggsave('myplot.png', p, bg='transparent')
-
<- unname(swatches::read_ase(here::here("palettes/Forest Floor.ase")))) (notebook_colors #> [1] "#88B04B" "#A9BDB1" "#A09D59" "#59754D" "#A6594C" "#426972" "#9C7E41" "#5F5C4C" "#7B4468" ::show_palette(notebook_colors) swatches
theme_notebook
<- function(...) { theme_notebook theme_minimal() %+replace% theme( panel.background = element_rect(fill='#FFFDF9FF'), panel.grid.minor = element_blank(), plot.background = element_rect(fill='#FFFDF9FF', color=NA), legend.background = element_rect(fill='#FFFDF9FF'), legend.box.background = element_rect(fill='#FFFDF9FF'), ... ) }
FIltering Data in Geoms (source)
|> mtcars rownames_to_column() |> ggplot(aes(mpg, hp)) + geom_point() + geom_label( aes(label = rowname), data = ~slice_max(.x, hp,n = 2), nudge_x = 3 )
Dynamic Axis Limits (source)
ggplot(...) + + ... scale_x_continuous( breaks = seq(2021, 2023, 1), limits = c(min(df$year) - .1, max(df$year) + .1), position = "top", labels = c("Baseline", "2022", "2023") )