Legend tweaking
using AlgebraOfGraphics, CairoMakie
To tweak the position and appearance of the legend, simply use the legend
keyword when plotting. For example
labels = ["a looooooong label", "an even loooooonger label", "and one more long label"]
df = (x=rand(100), y=rand(100), group=rand(labels, 100))
layers = linear() + mapping(color=:group)
plt = data(df) * layers * mapping(:x, :y)
draw(plt)
fg = draw(plt, legend=(position=:top, titleposition=:left, framevisible=true, padding=5))
To adjust the title and order of labels in a legend you can use the pair syntax.
layers = linear() + mapping(color=:group => sorter(labels) => "Labels")
plt = data(df) * layers * mapping(:x, :y)
draw(plt)
Adding a plot to a pre-existing figure with draw!
will not draw the legend automatically. In this case, one must use legend!
and specify the axis to which it should be added.
The tellheight = false, tellwidth = false
arguments are useful to avoid changing the dimensions of the axis.
makie_fig = Figure()
ax_scatter = Axis(makie_fig[1, 1])
grid = draw!(ax_scatter, plt)
legend!(makie_fig[1, 1], grid; tellheight=false, tellwidth=false, halign=:right, valign=:top)
makie_fig
This page was generated using DemoCards.jl and Literate.jl.