Release Notes
v0.7
Breaking Changes
- The
palettekeyword ofdrawlinking palettes to keyword arguments was removed. Instead, palettes need to be passed to specific scales likedraw(..., scales(Color = (; palette = :Set1_3))) - All recipes need to have the new function
aesthetic_mappingdefined for all sets of positional arguments that should be supported, as can be seen insrc/aesthetics.jl. This breaks usage of all custom recipes. Additionally, not all Makie plots have been ported to the new system yet. If you encounter missing plots, or missing attributes of already ported plots, please open an issue. - All custom recipes that should be displayed in a legend, need to have
legend_elements(P, attributes, scale_args)defined as can be seen insrc/guides/legend.jl. AlgebraOfGraphics cannot use the same default mechanism as Makie, which can create a legend from an existing plot, because AlgebraOfGraphics needs to create the legend before the plot is instantiated. - Pregrouped data cannot be passed anymore to the plain
mapping(...)without anydata(tabular). Instead, you should usepregrouped(...)which is a shortcut fordata(Pregrouped()) * mapping(...). ContourandContourfgenerally do not work anymore withvisual(). Instead, thecontours()andfilled_contours()analyses should be used.Contourcan still be used with categorical colors, but not with continuous ones.- All colormap properties for continuous color scales need to be passed via
scalesnow, and not throughvisual. This is to have central control over the scale as it can be used by multiplevisuals simultaneously.
New Features
- Horizontal barplots, violins, errorbars, rangebars and other plot types that have two different orientations work correctly now. Axis labels switch accordingly when the orientation is changed.
- Plotting functions whose positional arguments don't correspond to X, Y, Z work correctly now. For example,
HLines(1 => Y) orrangebars(1 => X, 2 => Y, 3 => Y). - It is possible to add categories beyond those present in the data with the
categorieskeyword within a scale's settings. It is also possible to reorder or otherwise transform the existing categories by passing a function tocategories. - The supported attributes are not limited anymore to a specific set of names, for example,
strokecolorcan work the same ascolordid before, and the two can share a scale via their shared aesthetic type. - There can be multiple scales of the same aesthetic now. This allows to have separate legends for different plot types using the same aesthetics. Scale separation works by pairing a variable in
mappingwith ascale(id_symbol). - Legend entries can be reordered using the
legend = (; order = ...)option indraw. Specific scales can opt out of the legend by passinglegend = falseinscales. - Labels can now be anything that Makie supports, primarily
Strings,LaTeXStrings orrichtext. - Legend elements now usually reflect all attributes set in their corresponding
visual. - Simple column vectors of data can now be passed directly to
mappingwithout usingdatafirst. Additionally, scalar values are accepted as a shortcut for columns with the same repeated value. - Columns from outside a table source in
datacan now be passed tomappingby wrapping them in thedirectfunction. Scalar values are accepted as a shortcut for columns with the same repeated value. For example, to create a label for columnsxandyfrom a dataframe passed todata, one could now domapping(:x, :y, color = direct("label"))without having to create a column full of"label"strings first. - The numbers at which categorical values are plotted on x and y axis can now be changed via
scales(X = (; palette = [1, 2, 4]))or similar. - Continuous marker size scales can now be shown in the legend. Numerical values are proportional to area and not diameter now, which makes more sense with respect to human perception. The min and max marker size can be set using the
sizerangeproperty for the respective scale inscales.
v0.6
Breaking Changes
- Default axis linking behavior has changed: now only axes corresponding to the same variable are linked. For consistency with
row/col,layoutwill hide decorations of linked axes and span axis labels if appropriate.
New Features
- Customizable axis linking behavior.
- Customizable legend and colorbar position and look.
- In v0.6.1, support
levelinlinearanalysis for confidence interval. - In v0.6.8, added
choroplethrecipe to supersedegeodatafor geographical data. - In v0.6.11, added
paginatefor pagination of large facet plots.
Internal changes
- In v0.6.1, replaced tuples and named tuples in
LayerandEntrywith dictionaries from Dictionaries.jl. - In v0.6.1, split internal
Entrytype intoProcessedLayer(to be used for analyses) andEntry(to be used for plotting).
v0.5
Breaking Changes
Axis(ae)has been replaced byae.axis.Legend(fg)has been replaced bylegend!(fg)andcolorbar!(fg).
New Features
legend!andcolorbar!API allows for custom legend placement.
v0.4
Breaking Changes
- Removed deprecations for
styleandspec(now onlymappingandvisualare allowed). - Analyses now require parentheses (i.e.
linear()instead oflinear). - Rename
layout_xandlayout_ytocolandrow. - Rename
wtskeyword argument toweights. categoricalhas been replaced bynonnumeric.