I’m happy to announce AlgebraOfGraphics.jl, a visualization package built on top of Makie (and the powerful layout engine MakieLayout). This is the next iteration of StatsMakie.jl, which will be eventually deprecated.
AlgebraOfGraphics implements a version of Grammar of Graphics based on custom types and multiple dispatch. In particular, a combination of custom types (
Analysis ) can be used to express how data should be grouped, styled, and analyzed (see examples). These basic types can then be combined using two operators:
+ (add as separate layers) and
* (combine information, within the same layer).
# select the `x` and `y` columns cols = style([:SepalLength, :SepalWidth], [:PetalLength :PetalWidth]) # color markers according to the column `Species` # organize layout according to the two arrays in `cols` grp = style(layout_x = dims(1), layout_y = dims(2), color = :Species) # specify scatter plot as well as the analysis geom = spec(Scatter) + linear # combine ingredients and draw data(iris) * cols * grp * geom |> draw
As the library is implemented in pure Julia, users are not limited to pre-built analyses but can implement their own, and they will automatically be integrated in the framework. IMO, the advantage of this systematization is that it becomes easier to make UIs to look at your data (on the style of the excellent voyager), but in pure julia, so that it is easier to add custom analyses to the UI.