Chart Compiler Gallery
ChartSpec data compiles into resolved scales, layer specs, glyph definitions, scene graph nodes, and a single SVG renderer.
Scatterplot
Rebuilds the scatterplot with color scale, regression trend, point layer, and filtered outlier labels.
Data Sources
7
Fields
11
Scales
3
Layers
10
Glyphs
45
rect 2 / line 17 / path 1 / text 13 / point 12
Build Path
This example is rebuilt from gallery data source points by recipe scatterplot: 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.scatterplot",
"data": [
{
"id": "source_gallery_scatterplot",
"rows": 12
},
{
"id": "pipeline_outlier_labels_source",
"rows": 2
},
{
"id": "source_trend",
"rows": 2
},
{
"id": "__guide.pipeline_xgrid_guide",
"rows": 6
},
{
"id": "__guide.pipeline_ygrid_guide",
"rows": 5
},
{
"id": "__guide.pipeline_xaxis_guide",
"rows": 6
},
{
"id": "__guide.pipeline_yaxis_guide",
"rows": 5
}
],
"transforms": [
{
"id": "pipeline_regression_trend_transform",
"type": "regression",
"input": "source_gallery_scatterplot",
"output": "source_trend",
"options": {
"count": 1,
"errorMethod": "standardError",
"fit": "contain",
"includeMax": true,
"layoutKind": "",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"xField": "x",
"yField": "y"
}
}
],
"axes": [
{
"id": "pipeline_xaxis_guide",
"scale": "pipeline_x_x_x_scale",
"orientation": "bottom"
},
{
"id": "pipeline_yaxis_guide",
"scale": "pipeline_y_y_y_scale",
"orientation": "left"
}
],
"grids": [
{
"id": "pipeline_xgrid_guide",
"scale": "pipeline_x_x_x_scale",
"orientation": "x"
},
{
"id": "pipeline_ygrid_guide",
"scale": "pipeline_y_y_y_scale",
"orientation": "y"
}
],
"legends": [],
"fields": [
"__rowLabel",
"label",
"category",
"x",
"y",
"tooltip",
"id",
"intercept",
"rSquared",
"slope",
"value"
],
"scales": [
{
"id": "pipeline_x_x_x_scale",
"type": "linear",
"domain": {
"source": "field",
"data": "source_gallery_scatterplot",
"field": "x",
"fields": [],
"includeZero": true,
"order": "input",
"reverse": false,
"symmetric": false
}
},
{
"id": "pipeline_y_y_y_scale",
"type": "linear",
"domain": {
"source": "field",
"data": "source_gallery_scatterplot",
"field": "y",
"fields": [],
"includeZero": true,
"order": "input",
"reverse": false,
"symmetric": false
}
},
{
"id": "pipeline_category_color_color_scale",
"type": "ordinal",
"domain": {
"source": "field",
"data": "source_gallery_scatterplot",
"field": "category",
"fields": [],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
}
],
"layers": [
{
"id": "pipeline_xgrid_guide",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_ygrid_guide",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_xaxis_guide-tick-marks",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_xaxis_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_yaxis_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "create_chart_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_y_trend_panel_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_y_trend_points_layer",
"mark": "point",
"role": "data"
},
{
"id": "pipeline_y_trend_line_layer",
"mark": "path",
"role": "data",
"path": {
"directD": false,
"areaBand": false,
"closedToY": false,
"curve": "linear",
"sortBy": "x"
}
},
{
"id": "pipeline_outlier_labels_layer",
"mark": "text",
"role": "guide"
}
]
}Resolved SceneGraph
{
"scene": "gallery.scatterplot.scene",
"scales": [
{
"id": "pipeline_x_x_x_scale",
"type": "linear",
"domain": [
0,
100
],
"range": [
70,
830
],
"ticks": [
0,
20,
40,
60,
80,
100
]
},
{
"id": "pipeline_y_y_y_scale",
"type": "linear",
"domain": [
0,
80
],
"range": [
400,
70
],
"ticks": [
0,
20,
40,
60,
80
]
},
{
"id": "pipeline_category_color_color_scale",
"type": "ordinal",
"domain": [
"Core",
"Growth",
"Scale",
"Outlier"
],
"range": [
"var(--colors-blue-9)",
"var(--colors-green-9)",
"var(--colors-orange-9)",
"var(--colors-purple-9)"
]
}
],
"layers": [
{
"id": "create_chart_surface",
"role": "context",
"zIndex": -10,
"glyphs": 1
},
{
"id": "pipeline_xgrid_guide",
"role": "guide",
"zIndex": 0,
"glyphs": 6
},
{
"id": "pipeline_ygrid_guide",
"role": "guide",
"zIndex": 0,
"glyphs": 5
},
{
"id": "pipeline_y_trend_panel_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_xaxis_guide-tick-marks",
"role": "guide",
"zIndex": 5,
"glyphs": 6
},
{
"id": "pipeline_y_trend_line_layer",
"role": "data",
"zIndex": 7,
"glyphs": 1
},
{
"id": "pipeline_xaxis_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 6
},
{
"id": "pipeline_yaxis_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 5
},
{
"id": "pipeline_y_trend_points_layer",
"role": "data",
"zIndex": 20,
"glyphs": 12
},
{
"id": "pipeline_outlier_labels_layer",
"role": "guide",
"zIndex": 30,
"glyphs": 2
}
]
}Glyph Data Tree
Full parameter lineage for the active compiler surface.
create_chart_surface
pipeline_xgrid_guide
pipeline_ygrid_guide
pipeline_y_trend_panel_layout_surface
pipeline_xaxis_guide-tick-marks
pipeline_y_trend_line_layer
pipeline_xaxis_guide-labels
pipeline_yaxis_guide-labels
pipeline_y_trend_points_layer
pipeline_outlier_labels_layer
Glyph Inspector
Select a glyph in the chart to inspect resolved params and lineage.