Skip to content

vellumplot 0.9.0

Latest

Choose a tag to compare

@schochastics schochastics released this 01 Aug 17:24
· 62 commits to main since this release
bf70748

First tagged release of vellumplot — a declarative, pipe-first grammar of graphics that compiles an inspectable, serializable spec into a vellum vector scene and renders it. It runs without a graphics device (vellum measures text itself), and the compiled plot is the scene, so the static figure and the interactive widget cannot drift.

Things that are a little unusual to find together in one R grammar:

  • One spec → PNG / SVG / PDF from one solved layout, and the PDF is tagged (a real structure tree + alt text a screen reader can navigate).
  • Checkable accessibilityplot_lint() flags tiny text, low contrast, and single-level legends; render through a colour-vision-deficiency simulation (render(cvd = )) to preview a colour-blind reader's view.
  • Interactive HTML widgets (vellumwidget) that reuse the marks you declared — no *_interactive() twins, no Vega/plotly re-draw.
  • Vector-preserving effects and regions — real Gaussian-blur glow()/shadow() (including on text), and Venn/Euler diagrams and merged choropleths computed as boolean geometry so they stay crisp in PDF.
  • Texture as well as huepattern_*() hatch fills that survive greyscale print and colour-vision deficiency, on every backend.
  • Keyframe animationtransition_states() / animate() / anim_save() to GIF, APNG, or a resolution-independent animated SVG (honours prefers-reduced-motion).
  • A native hand-drawn mode (theme_sketch()), exact and identical across PNG/SVG/PDF.

Also included: the full mark/scale/facet/coord grammar, statistical marks, spatial (sf / coord_sf) and network (igraph, sankey, hierarchies, chord) plots, multi-page PDF (pdf_pages()) and parallel batch (render_all()) output, repelled labels, SVG icon markers, and multi-plot composition.

Install:

pak::pak("r-vellum/vellumplot")

Needs the vellum backend (a Rust toolchain; pak pulls it in).