All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
pj/lay-*with different x/y columns from the existing pose now produces a two-panel composite instead of throwing.- When
pj/lay-*would create a new panel using columns that don't exist in the data, the error now fires at the lay call with a clear message, instead of later duringpj/planorpj/plot. - When a layer carries its own
:databut the pose's x/y columns are missing from it, the error now names where the missing column came from and suggests two fixes: rename the column to match, or set a different x/y on the layer.
- fix:
pj/scale :y :lognow works on histograms and categorical bar charts. (Closes #5) - thanks, @harold. - fix: SVG coordinate formatter now pins
java.util.Locale/ROOT, so plots render correctly on JVMs whose default locale uses comma as the decimal separator (Czech, German, etc.). (PR #3) - thanks, @tombarys
pj/scaleaccepts:labelspaired with:breaks-- render numeric tick positions with custom text (e.g. days of the week 1-7 labelled "Mon"-"Sun" on a tile heatmap). Length must match:breaks;:labelswithout:breaksthrows.- docstring updates
- the membrane stage now returns a
PlotjeMembranerecord implementing the Membrane UI protocols (IOrigin,IBounds,IChildren), so Plotje plots compose with hand-built Membrane elements. Width and height read via(membrane.ui/width m)/(height m); title rides as:plotje/title. Replaces the prior metadata-tagged-vector contract. - new
pj/membrane?predicate
- initial public alpha release
- composable five-stage pipeline: pose -> draft -> plan -> membrane -> plot
- layer types for distributions, ranking, time series, relationships, and polar
- composite poses with faceting and shared scales
- SVG and PNG rendering via membrane