Two more are declared on the series itself, in the maidr block of
Highcharts' reserved custom subspace, because nothing in the chart object
says what the drawing means:
custom.maidr = { type: 'survival' } on a stepped line series →
TraceType.SURVIVAL, absorbing a linked scatter as its censoring
ticks and a linked arearange as its confidence band
custom.maidr = { type: 'forest', … } on the estimate series →
TraceType.FOREST, taking its interval from the errorbar linked
over it and its weights, pooled row and null line from the declaration
Multi-pane charts (multiple yAxis/xAxis entries laid out as separate
bands, e.g. the Highstock price + volume pattern) are detected from the
rendered axis geometry and emitted as a MAIDR subplot grid — one subplot
per pane, navigable with arrow keys. Ambiguous layouts (overlapping bands,
dual-axis overlays) fall back to today's single-subplot output.
Converts a rendered Highcharts chart into a MAIDR data structure.
The chart must already be rendered (i.e. the SVG DOM exists) so that CSS selectors can be generated for element highlighting.
Supported Highcharts series types:
bar,column→ TraceType.BARline,spline→ TraceType.LINE, or TraceType.STEP when the series setssteparea,areaspline→ TraceType.AREAscatter→ TraceType.SCATTER, or TraceType.DOT on a category axis (a Cleveland dot plot)lollipop→ TraceType.LOLLIPOPtimeline→ TraceType.SCATTER, each event named on its pointfunnel,pyramid→ TraceType.FUNNELwordcloud→ TraceType.WORD_CLOUDsankey,arcdiagram→ TraceType.SANKEYdependencywheel→ TraceType.CHORDnetworkgraph→ TraceType.NETWORKtreemap→ TraceType.TREEMAPsunburst→ TraceType.SUNBURSTgauge,solidgauge,bullet→ TraceType.GAUGEwaterfall→ TraceType.WATERFALLerrorbar→ TraceType.ERROR_BAR, taking its estimates from the series it is linked todumbbell→ TraceType.DUMBBELLgantt,xrange→ TraceType.GANTTboxplot→ TraceType.BOXheatmap→ TraceType.HEATMAPmap(Highmaps) → TraceType.CHOROPLETHmapbubble→ TraceType.CHOROPLETH, taking its value from the marker size Highcharts nameszmappoint→ TraceType.SCATTER of degrees east against degrees north, each place on ScatterPoint.labeltilemap→ TraceType.HEXBIN, or TraceType.HEATMAP when itstileShapeissquare(an aligned grid rather than a stagger)histogram→ TraceType.HISTOGRAMcandlestick,ohlc,hlc→ TraceType.CANDLESTICK, the last without an opening price and so without a body, a trend or a patternpie(including doughnuts, which are a pie with aninnerSize) → TraceType.PIEcolumn/bar→ TraceType.STACKEDcolumn/bar→ TraceType.DODGEDcolumn/bar→ TraceType.NORMALIZEDarea/areaspline→ TraceType.STACKED_AREAarea/areaspline→ TraceType.NORMALIZED_AREAcolumn/barseries growing opposite ways → TraceType.DIVERGINGTwo chart-wide drawing modes override the series types above, because they change what a series means without changing what it is called:
chart.polar→ TraceType.RADAR forline/spline/areaseries, TraceType.POLAR_AREA forcolumn/baroneschart.parallelCoordinates→ TraceType.PARALLELTwo more are read from the data or declared by the caller, because Highcharts draws them with a series type it shares with something else:
line/splineseries carrying a rank permutation on a reversed axis → TraceType.BUMP, forced or suppressed withoptions.bumpscatterseries named byoptions.significancePlot→ TraceType.VOLCANO or TraceType.MANHATTAN, merged into one layerTwo more are declared on the series itself, in the
maidrblock of Highcharts' reservedcustomsubspace, because nothing in the chart object says what the drawing means:custom.maidr = { type: 'survival' }on a steppedlineseries → TraceType.SURVIVAL, absorbing a linkedscatteras its censoring ticks and a linkedarearangeas its confidence bandcustom.maidr = { type: 'forest', … }on the estimate series → TraceType.FOREST, taking its interval from theerrorbarlinked over it and its weights, pooled row and null line from the declarationMulti-pane charts (multiple
yAxis/xAxisentries laid out as separate bands, e.g. the Highstock price + volume pattern) are detected from the rendered axis geometry and emitted as a MAIDR subplot grid — one subplot per pane, navigable with arrow keys. Ambiguous layouts (overlapping bands, dual-axis overlays) fall back to today's single-subplot output.