Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
asinghvi17 authored Oct 25, 2024
1 parent c91155c commit 33b1adb
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion docs/src/plots.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,16 @@ Makie.rainclouds(A)

## AlgebraOfGraphics.jl

AlgebraOfGraphics.jl is a high-level plotting library built on top of Makie.jl that provides a declarative "grammar of graphics" for creating complex visualizations. It allows you to construct plots using algebraic operations like `*` and `+`, making it easy to create sophisticated graphics with minimal code.
AlgebraOfGraphics.jl is a high-level plotting library built on top of Makie.jl that provides a declarative algebra for creating complex visualizations, similar to `ggplot2`'s "grammar of graphics" in R. It allows you to construct plots using algebraic operations like `*` and `+`, making it easy to create sophisticated graphics with minimal code.

Any `DimensionalArray` is also a `Tables.jl` table, so it can be used with `AlgebraOfGraphics.jl` directly. You can indicate columns in `mapping` with Symbols directly (like `:X` or `:Y`), **or** you can use the `Dim` type directly (like `X` or `Y`)!

!!! note
If your dimensional array is not named, then you can access the data as the **`:unnamed`** column.
Otherwise, the data is accessible by its name.

Let's start with a simple example, and plot a 2-D dimarray as a scatter plot, colored by its value.

```@example Makie
using DimensionalData, AlgebraOfGraphics, CairoMakie
CairoMakie.activate!(type = :svg) # hide
Expand All @@ -49,8 +55,28 @@ A = DimArray(rand(10, 10), (X(1:10), Y(1:10)), name = :data)
data(A) * mapping(X, Y; color = :data) * visual(Scatter) |> draw
```

Don't restrict yourself to standard visualizations! You can use all of AlgebraOfGraphics' features.

Let's plot each X-slice, faceted in Y:

```@example Makie
data(A) * mapping(X, :data; layout = Y => nonnumeric) * visual(Lines) |> draw
```

This approach is also applicable to `DimStack`s, since they also convert to DimTables. Let's see an example here.

We'll construct a DimStack with the `:data` layer being our DimArray `A`, and an X-only variable `:color` that we'll use to color the line.

```@example Makie
color_vec = DimVector(1:10, X)
ds = DimStack((; data = A, color = color_vec))
data(ds) * mapping(X, :data; color = :color, layout = Y => nonnumeric) * visual(Lines) |> draw
```

!!! note
If you wish to subset your DimArray, you can't pass selectors like `X(1 .. 2)` to AlgebraOfGraphics.
Instead, subset the DimArray you pass to `data` - this is a very cheap operation.

## Test series plots

Expand Down

0 comments on commit 33b1adb

Please sign in to comment.