Chart Compiler Gallery
ChartSpec data compiles into resolved scales, layer specs, glyph definitions, scene graph nodes, and a single SVG renderer.
Scatterplot Matrix
Mixed fields expand into SPLOM panels with off-diagonal jittered scatter and diagonal distributions.
Data Sources
4
Fields
37
Scales
1
Layers
7
Glyphs
109
rect 28 / point 72 / text 9
Build Path
This example is rebuilt from gallery data source observations by recipe scatterplotMatrix: raw table rows -> TabularSource -> pipeline drafts -> analyzeAuthoringDrafts() -> materialized ChartSpec -> compileChart() -> SceneGraph -> SVG. The graph below shows the authored pipeline stage.
Pipeline recipe graph
Data Flow Diagram
Select a glyph to highlight its complete source path.
Scope
Roles
No matching flow nodes
Adjust search, scope, or role filters.
Available Data
Imported table
ChartSpec
{
"id": "gallery.scatterplotMatrix",
"data": [
{
"id": "source_gallery_scatterplotmatrix",
"rows": 12
},
{
"id": "source_matrix_panels",
"rows": 9
},
{
"id": "source_matrix_points",
"rows": 72
},
{
"id": "source_matrix_distributions",
"rows": 16
}
],
"transforms": [
{
"id": "pipeline_matrix_panel_layout_transform",
"type": "layout",
"input": "source_gallery_scatterplotmatrix",
"output": "source_matrix_panels",
"options": {
"columnGap": 9,
"endField": "segment",
"errorMethod": "standardError",
"field": "reach",
"fit": "contain",
"geometryField": "reach",
"groupBy": [
"reach"
],
"idField": "reach",
"includeMax": false,
"labelField": "reach",
"layout": "pipeline_plot_layout",
"layoutKind": "scatterplotMatrixPanels",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"orderField": "reach",
"parentField": "conversion",
"seriesBy": "conversion",
"sourceField": "reach",
"startField": "conversion",
"targetField": "conversion",
"value": "promoted",
"xField": "conversion",
"yField": "segment"
}
},
{
"id": "pipeline_matrix_point_layout_transform",
"type": "layout",
"input": "source_gallery_scatterplotmatrix",
"output": "source_matrix_points",
"options": {
"columnGap": 9,
"endField": "segment",
"errorMethod": "standardError",
"field": "reach",
"fit": "contain",
"geometryField": "reach",
"groupBy": [
"reach"
],
"idField": "reach",
"includeMax": false,
"innerPadding": 14,
"jitter": 12,
"labelField": "reach",
"layout": "pipeline_plot_layout",
"layoutKind": "scatterplotMatrixPoints",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"orderField": "reach",
"parentField": "conversion",
"seriesBy": "conversion",
"sourceField": "reach",
"startField": "conversion",
"targetField": "conversion",
"value": "promoted",
"xField": "conversion",
"yField": "segment"
}
},
{
"id": "pipeline_matrix_distribution_layout_transform",
"type": "layout",
"input": "source_gallery_scatterplotmatrix",
"output": "source_matrix_distributions",
"options": {
"columnGap": 9,
"count": 7,
"endField": "segment",
"errorMethod": "standardError",
"field": "reach",
"fit": "contain",
"geometryField": "reach",
"groupBy": [
"reach"
],
"idField": "reach",
"includeMax": false,
"innerPadding": 14,
"labelField": "reach",
"layout": "pipeline_plot_layout",
"layoutKind": "scatterplotMatrixDistributions",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"orderField": "reach",
"parentField": "conversion",
"seriesBy": "conversion",
"sourceField": "reach",
"startField": "conversion",
"targetField": "conversion",
"value": "promoted",
"xField": "conversion",
"yField": "segment"
}
}
],
"axes": [],
"grids": [],
"legends": [],
"fields": [
"__rowLabel",
"label",
"segment",
"quality",
"promoted",
"reach",
"conversion",
"tooltip",
"id",
"cellRole",
"columnIndex",
"diagonal",
"height",
"labelX",
"labelY",
"rowIndex",
"width",
"x",
"xField",
"xLabel",
"xType",
"y",
"yField",
"yLabel",
"yType",
"cellId",
"xValue",
"yValue",
"count",
"distributionKind",
"field",
"fieldLabel",
"fieldType",
"max",
"min",
"value",
"valueLabel"
],
"scales": [
{
"id": "pipeline_color_color_scale",
"type": "ordinal",
"domain": {
"source": "field",
"data": "source_matrix_points",
"field": "segment",
"fields": [],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
}
],
"layers": [
{
"id": "create_chart_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_view_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_plot_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_matrix_panels_layer",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_diagonal_distributions_layer",
"mark": "rect",
"role": "data"
},
{
"id": "pipeline_off_diagonal_points_layer",
"mark": "point",
"role": "data"
},
{
"id": "pipeline_panel_labels_layer",
"mark": "text",
"role": "guide"
}
]
}Resolved SceneGraph
{
"scene": "gallery.scatterplotMatrix.scene",
"scales": [
{
"id": "pipeline_color_color_scale",
"type": "ordinal",
"domain": [
"Core",
"Growth",
"Scale",
"Experimental"
],
"range": [
"var(--colors-blue-9)",
"var(--colors-green-9)",
"var(--colors-amber-9)",
"var(--colors-purple-9)",
"var(--colors-red-9)"
]
}
],
"layers": [
{
"id": "create_chart_surface",
"role": "context",
"zIndex": -10,
"glyphs": 1
},
{
"id": "pipeline_view_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_plot_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_matrix_panels_layer",
"role": "context",
"zIndex": 0,
"glyphs": 9
},
{
"id": "pipeline_diagonal_distributions_layer",
"role": "data",
"zIndex": 5,
"glyphs": 16
},
{
"id": "pipeline_off_diagonal_points_layer",
"role": "data",
"zIndex": 15,
"glyphs": 72
},
{
"id": "pipeline_panel_labels_layer",
"role": "guide",
"zIndex": 25,
"glyphs": 9
}
]
}Glyph Data Tree
Full parameter lineage for the active compiler surface.
create_chart_surface
pipeline_view_layout_surface
pipeline_plot_layout_surface
pipeline_matrix_panels_layer
pipeline_diagonal_distributions_layer
pipeline_off_diagonal_points_layer
pipeline_panel_labels_layer
Glyph Inspector
Select a glyph in the chart to inspect resolved params and lineage.