MakieOrg / AlgebraOfGraphics.jl

An algebraic spin on grammar-of-graphics data visualization in Julia. Powered by the Makie.jl plotting ecosystem.
https://aog.makie.org
MIT License
439 stars 45 forks source link
AlgebraOfGraphics Logo

AlgebraOfGraphics

CI codecov.io

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, PalmerPenguins, DataFrames

penguins = dropmissing(DataFrame(PalmerPenguins.load()))

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)))

Acknowledgements

Analyses rely on StatsBase.jl, Loess.jl, KernelDensity.jl, and GLM.jl. Some of their documentation is transcribed here.

Logo and favicon made with 🧡 by @dyogurt.