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.
OptionalweightAccessor for the study's weight in the pooled estimate, as a fraction of one.
OptionalpooledAccessor marking a row as the pooled summary rather than a study.
OptionalpooledCSS selector for the pooled summary's own mark, when it is drawn differently from the studies — the diamond a meta-analysis ends with. Its rows are appended after the studies, in the order they are drawn.
OptionalnullThe value that means "no effect" — 1 for a ratio measure, 0 for a difference.
Whether a study's interval crosses it is the result for that study, so the trace announces the crossing. There is deliberately no default: a ratio chart guessed at 0 would report every study as not crossing, which is a confident wrong answer given to every row.
CSS selector for the per-estimate elements (e.g. 'g.estimate').
OptionalxAccessor for the x-axis (category) value.
OptionalyAccessor for the estimate itself.
OptionalyAccessor for the interval's absolute lower bound.
OptionalyAccessor for the interval's absolute upper bound.
OptionalorientationChart orientation.
Configuration for binding a D3 forest plot.
Extends D3ErrorBarConfig because a forest plot is a point-range chart: one row per study, an estimate and an interval read the same way. What it adds is the part a sighted reader takes from the drawing — how much each study weighs, which row is the pooled summary, and where the null line sits.
The pooled row is usually a differently-shaped mark (a diamond
<path>, not a whip), so it is selected separately withpooledSelectorand appended after the studies. A chart that draws every row alike can instead mark it with thepooledaccessor.Example