README.md
July 27, 2026 · View on GitHub
Visualize your data using a few simple building blocks that can be
composed using + and *. AlgebraOfGraphics puts a new algebraic spin
on the grammar of graphics idea known from R’s
ggplot2 package.
Visualizations are powered by Makie and you have its full capabilities available to tweak figures produced by AlgebraOfGraphics.
Example
using AlgebraOfGraphics, CairoMakie
penguins = AlgebraOfGraphics.penguins()
set_aog_theme!()
update_theme!(Axis = (; width = 150, height = 150))
spec = data(penguins) * mapping(:bill_length_mm, :bill_depth_mm)
draw(spec)

by_color = spec * mapping(color = :species)
draw(by_color)

with_regression = by_color * (linear() + visual(alpha = 0.3))
draw(with_regression)

facetted = with_regression * mapping(col = :sex)
draw(facetted)

draw(facetted, scales(Color = (; palette = :Set1_3)))

Citing AlgebraOfGraphics
If you use AlgebraOfGraphics for a scientific publication, please acknowledge and support our work by citing our JOSS paper the following way:
Krumbiegel & Vertechi, (2026). AlgebraOfGraphics.jl: A Makie-powered algebraic grammar of graphics for Julia.
Journal of Open Source Software, 11(123), 10894, https://doi.org/10.21105/joss.10894
BibTeX entry:
@article{Krumbiegel2026,
doi = {10.21105/joss.10894},
url = {https://doi.org/10.21105/joss.10894},
year = {2026},
publisher = {The Open Journal},
volume = {11},
number = {123},
pages = {10894},
author = {Krumbiegel, Julius and Vertechi, Pietro},
title = {{AlgebraOfGraphics.jl}: A {Makie}-powered algebraic grammar of graphics for {Julia}},
journal = {Journal of Open Source Software}
}
Contributing
See CONTRIBUTING.md for how to get help, report bugs, and contribute code or documentation.
Acknowledgements
Analyses rely on StatsBase.jl, Loess.jl, KernelDensity.jl, and GLM.jl. Some of their documentation is transcribed here.