Supported Features
This page describes implemented behavior only. A dash means that the current chart-authoring API does not support that combination.
Complete chart support
Every chart family below supports Browser Canvas, browser-safe SVG, Node PNG, single-page vector PDF, and an optional chart title. The smaller family tables keep the comparison readable on narrow screens.
Cartesian charts
The complete createScatterPlot, createLinePlot, createBarPlot,
createHistogram, and pre-gridded or raw-row binned createHeatmap facades compose the same
mark, encoding, scale, and guide actions described below. Individual actions
remain available for custom layering and editing.
| Capability | Scatterplot | Line | Histogram | Bar | Heatmap / ranged rect |
|---|---|---|---|---|---|
| Semantic mark | point | line | bar | bar | rect |
| Position | quantitative x/y | temporal x, aggregate y | binned x, count y | vertical or horizontal category/aggregate pair | two discrete bands or x/x2 + y/y2 ranges |
| Nominal color | point fill | series stroke | five bar layouts | five bar layouts | cell fill |
| Stroke dash | — | nominal or constant; 4 named styles | — | — | — |
| Appearance | radius, deterministic bounded x/y jitter | stroke width, 8 curves | default bar geometry | band or logical-pixel width | encoded fill, opacity, outline |
| Automatic guides | linear axes; horizontal grid | UTC time/linear axes; horizontal grid | bin-aligned/linear axes; horizontal grid | ordinal/linear axes; horizontal grid | discrete/continuous axes and color legend |
| Legend | point color + shape | categorical | categorical | categorical | categorical or continuous color |
| Selection/highlight | point | series | final bar | final bar | observed cell |
Statistical layers
| Capability | Regression scatterplot | Density area | Horizon area |
|---|---|---|---|
| Semantic marks | point + area + line | area | area |
| Position | shared quantitative x/y | value + density x/y | quantitative/temporal x; folded [0, 1] y/y2 |
| Nominal color | point fill + fit stroke | overlay/stack/fill/diverging area | positive/negative band palettes |
| Appearance | point opacity, band fill/outline, line width, 8 curves | opacity, 8 curves | band count, baseline, 8 curves |
| Automatic guides | shared linear axes and horizontal grid | source-value/density axes; horizontal grid, vertical optional | source x axis/grid only; no folded y axis or legend |
| Legend | composite color/shape/line + size | categorical top/right/bottom | intentionally omitted |
| Selection/highlight | layer selection + point highlight | series | folded band items |
Intervals and distributions
| Capability | Error bar | Error band | Box plot | Gradient plot | Violin plot |
|---|---|---|---|---|---|
| Semantic marks | rule | area | bar + rule + point | rect + rule | area |
| Position | categorical/temporal independent axis; interval on the other | quantitative/temporal independent axis; x/x2 or y/y2 interval | categorical axis; quantitative interval axis | categorical axis; sampled quantitative profile | categorical center; quantitative density profile |
| Nominal color | — | grouped area fill | body fill through ranged-bar color | category hue with density modulation | category or two-value split fill |
| Appearance | stroke, width, dash, opacity, optional caps | fill, opacity, 8 curves, styled boundaries | fixed defaults; 1.5px median/whiskers | structured gradient fill, width, optional center rule | fill, opacity, outline, 8 curves, shared/independent width |
| Automatic guides | interval and independent axes; perpendicular grid | interval and independent axes; perpendicular grid | opt-in categorical/linear axes and horizontal grid | categorical/linear axes, grid, density legend | categorical/linear axes; horizontal grid |
| Legend | — | categorical | optional ranged-bar color legend | neutral density; categorical color when requested | optional category or split legend |
| Selection/highlight | rule | series | component | category strip | full or split profile |
Polar charts
| Capability | Polar points | Polar line / radar | Arc / donut / rose / radial bar |
|---|---|---|---|
| Semantic mark | point | line | arc |
| Position | theta/radius | theta/radius | direct quantitative theta, categorical count/weighted-sum theta, or theta/radius |
| Nominal color | point fill | series stroke | sector fill, including overlay grain |
| Stroke dash | — | nominal or constant; 4 named styles | — |
| Appearance | radius, opacity, shape | stroke width, opacity, open/closed | inner radius, angular padding, fill, outline, opacity |
| Automatic guides | theta outer axis, radial axis, spokes, circles | theta outer axis, radial axis, spokes, circles | applicable theta/radius axes, spokes, circles |
| Legend | point color + shape | categorical | categorical |
| Selection/highlight | point | series | sector |
Parallel coordinates
| Capability | Supported now |
|---|---|
| Semantic mark | one open line-path item per eligible source row |
| Position | two or more ordered quantitative or ordinal dimensions, each with a local scale and axis |
| Missing values | break fragments, whole-row drop-row, or strict error |
| Appearance | categorical color, categorical or constant stroke dash, line stroke/width/opacity |
| Automatic guides | one ordinary line/text axis per dimension and applicable categorical legend; no automatic grid |
| Selection/highlight | source-row item, including immutable filterMarks rematerialization |
Shared foundations
| Area | Supported now |
|---|---|
| Program model | Immutable unit or composition ChartProgram, hierarchical trace, nested Cartesian/Polar horizontal or vertical composition, stable child replacement, and Cartesian facet repetition |
| Canvas | Create/edit width, height, background, margin |
| Data | Immutable arrays of plain row objects, named filters, stable window operations, rectangular 2D bins, grouped interval summaries, grouped linear/polynomial/LOESS regression, grouped kernel-density derivations, and immutable Horizon band revisions |
| Coordinates | Named Cartesian, Polar, and Parallel resources; x/y use Cartesian, theta/radius use Polar, and ordered dimensions use Parallel |
| Scales | Linear/log/pow/sqrt/symlog position across compatible marks, UTC time, band/point position with semantic explicit/count/category/summary ordering, ordinal/sequential/quantize/quantile/threshold color, point-item unknown fallbacks, named/direct stroke dash, and padded band-local xOffset/yOffset |
| Aggregates | count, sum, mean, median, min/max, distinct/valid/missing, sample/population dispersion, quartiles, standard error, normal 95% mean endpoints, parameterized quantile, and ordered first/last |
| Guides | Automatic Cartesian x/y and Polar theta/radius axes, closed numeric/UTC label formats, independently editable Cartesian and Polar grids, editable four-edge categorical and continuous legends, and right-side interval legends |
| Titles | One four-edge title with an optional subtitle, deterministic word/character wrapping, and partial editing |
| Rendering | Browser Canvas, browser-safe SVG string, Node PNG, and single-page vector PDF |
| Graphics | Concrete canvas, circle, line, rect, text, M/L/C/Z command paths, shared 8-value line/area curves, and heterogeneous drawable collections |
| Selection | Strict point/bar/rect/series/arc/rule comparison, set, range and grouped rank; reusable selection state; mark-specific highlight/dimming/front order |
Basic chart facades infer only a current or unique dataset and stable unused
role IDs. Ambiguous data or an occupied default role requires an explicit ID.
Complete chart facades create applicable guides by default and accept
guides: false. createBoxPlot preserves its historical opt-in behavior:
pass guides: {} or nested options to create applicable guides.
Current limitations
Data, transforms, and heatmaps
The public one-transform derived-data union covers rectangular 2D bins, filters, regression, density, Horizon folding, intervals, UTC time units, and window operations. Arbitrary transform pipelines and transforms outside that documented union are not implemented. Interactive legends are also not implemented. Pre-gridded heatmaps do not synthesize missing cells. Binned heatmaps support fixed rectangular bins only; weighted, adaptive, hexagonal, and overflow bins are not implemented. Cell text must be added as a separate text layer.
Guides and interval charts
Categorical legends support all four edges; point composite and size legends support right and left side layouts. Error bars support vertical and horizontal statistical intervals, existing center/lower/upper fields, optional caps, and constant rule appearance. Error bands support vertical and horizontal statistical or explicit ranges and optional lower/upper boundary lines with shared stroke, width, dash, opacity, and inherited or overridden curve. Independent lower/upper style objects are not implemented.
Distribution charts
Box plots support vertical or horizontal category/measure pairings, default
or configurable Tukey summaries, min–max whiskers, band width and component
appearance overrides, and explicit outlier opt-out without placeholder resources.
Gradient plots support the same category/measure orientation family, immutable
sampled profile revisions, configurable density/width/paint/center options,
source-first filtering, category-strip highlighting, and Cartesian facet
replay. Shared facet density legends and partial composite filterMarks are
not implemented.
Violin plots support the same category/measure orientation family, symmetric
full profiles, one-sided placement, two-value split halves, shared or
category-local density width, density revision, source filtering, profile
selection/highlighting, Cartesian facet replay, and compatible overlay scales.
Raincloud components, more than two split values, adaptive bandwidth, and
Polar violin placement are not implemented.
Selection, appearance, and text
Mark selection supports point, final-bar item, stacked-bar group, line/area series, arc sector, and rule grain. Selector values explicitly distinguish data fields, pre-scale semantic channels, and concrete graphic properties. Highlight appearance supports point fill/shape/size/outline/offset, bar fill and outline, area/arc fill/outline/offset, and line/rule stroke/width/dash/offset. Cartesian point jitter supports deterministic pixel offsets and categorical band-relative offsets. It preserves semantic channel values, remains bounded by glyph extent and plot/category slots, and does not perform collision-free packing. Polar point jitter is not implemented. Text marks support deterministic collision-aware displacement along x, y, or both axes within plot or Canvas bounds. The policy can create ordinary leader lines, replays after text/source/data/scale/Canvas edits, and records structured warnings when bounded placement cannot eliminate every overlap. It does not expand margins, shrink text, arrange guide labels, or search unrelated marks for anchors.
Coordinates and composition
Polar charts may be direct or nested concat children. Faceting a Polar source is not implemented and fails before partial child state is created. Parallel coordinates support quantitative/ordinal dimensions, open linear paths, dimension-local axes, color/stroke-dash legends, selection and filtering. Temporal dimensions, curved paths, axis drag reordering, brushing, bundling, faceting, and shared Parallel coordinates across child programs are not implemented.