AlgebraOfGraphics
An algebraic spin on grammar-of-graphics data visualization powered by Makie.jl
An algebraic spin on grammar-of-graphics data visualization powered by Makie.jl
AlgebraOfGraphics (AoG) defines a language for data visualization, inspired by the grammar-of-graphics system made popular by the R library ggplot2. It is based on the plotting package Makie.jl which means that most capabilities of Makie are available, and AoG plots can be freely composed with normal Makie figures.

In AlgebraOfGraphics, a few simple building blocks can be combined using + and * to quickly create complex visualizations, like this:
using AlgebraOfGraphics, CairoMakie
spec =
data(AlgebraOfGraphics.penguins()) *
mapping(
:bill_length_mm => "Bill length (mm)",
:bill_depth_mm => "Bill depth (mm)",
color = :species => "Species",
row = :sex,
col = :island,
) *
(visual(Scatter, alpha = 0.3) + linear())
draw(spec)
You can install AlgebraOfGraphics from the General Registry with the usual Pkg commands:
using Pkg
Pkg.add("AlgebraOfGraphics")Have a look at the Intro to AoG - I - Fundamentals tutorial to get to know 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
@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}
}