OptionalidUnique identifier for the chart. Used as the MAIDR id.
OptionaltitleChart title displayed in text descriptions.
OptionalsubtitleChart subtitle.
OptionalcaptionChart caption.
OptionalaxesAxis configuration. Each axis may be provided as either a plain string
(shorthand for { label: value }) or a full AxisConfig object
(for per-axis format, or grid navigation on scatter).
For heatmaps and segmented bar charts, use fill for the color/category
axis; the binder maps it to the canonical z axis in the MAIDR schema.
Optionalx?: D3AxisInputOptionaly?: D3AxisInputOptionalfill?: D3AxisInputFill/color axis for heatmaps and segmented bars. Maps to z internally.
OptionalformatOptional formatting configuration applied to axes that do not specify
their own format. Per-axis format on AxisConfig takes precedence.
OptionalautoWhen true (the default), the binder writes the generated MAIDR schema
to the SVG as a maidr-data attribute so vanilla-JS users don't need
to call svg.setAttribute(...) themselves. The returned result is
unchanged either way.
Set to false if you are driving MAIDR yourself — e.g. passing the
returned schema to <Maidr data={...}> or persisting it elsewhere.
The React adapter (useD3Adapter, MaidrD3) forces this
to false internally so it can stay in control of the schema.
CSS selector for the hexagons (e.g. 'path.hexagon'). One per bin.
OptionalxAccessor for the bin's centre along the x axis.
OptionalyAccessor for the bin's centre along the y axis.
OptionalcountAccessor for how many points fell in the bin.
OptionalrowAccessor for the lattice row a bin belongs to. Supply this only when the
bins' y centres do not come out identical within a row — d3-hexbin's
do, so the default grouping by y is normally right.
Configuration for binding a D3 hexbin density plot.
The
d3-hexbinplugin returns one bin per occupied hexagon, and each bin is an array of the points that fell in it, carrying.xand.y(the hexagon's centre, in SCREEN space) and.length(the count). So the default accessors readx,yandlengthoff the bin, andx/yare where the inverse scales go:x: d => xScale.invert(d.x). Passing the screen coordinates through unchanged would announce every bin's position in pixels.The payload is a lattice of rows, which the binder assembles itself: a hexbin's DOM is a flat list in whatever order the bins were generated, and an empty bin is simply absent from it. Rows are grouped by the bins'
y(override withrowwhen the y values do not come out identical per row), ordered from the lowest upward, and each row is ordered left to right.