Chart Compiler Gallery
ChartSpec data compiles into resolved scales, layer specs, glyph definitions, scene graph nodes, and a single SVG renderer.
FD EV Price/Range
Reproduction of the NYT/FlowingData EV price-vs-range comparison with source rows and regression lineage.
Data Sources
16
Fields
40
Scales
4
Layers
20
Glyphs
234
rect 4 / line 14 / path 2 / text 20 / point 194
Build Path
This example is rebuilt from gallery data source ev-models by recipe flowingDataEvPriceRange: 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.flowingDataEvPriceRange",
"data": [
{
"id": "source_gallery_flowingdataevpricerange",
"rows": 311
},
{
"id": "pipeline_source_metadata_source",
"rows": 1
},
{
"id": "pipeline_ev_rows_under_80_000_source",
"rows": 287
},
{
"id": "pipeline_2016_2019_price_range_rows_source",
"rows": 46
},
{
"id": "pipeline_2024_2026_price_range_rows_source",
"rows": 148
},
{
"id": "pipeline_panel_labels_source",
"rows": 2
},
{
"id": "pipeline_old_trend_label_source",
"rows": 1
},
{
"id": "pipeline_recent_trend_label_source",
"rows": 1
},
{
"id": "source_old_price_range_trend",
"rows": 0
},
{
"id": "source_recent_price_range_trend",
"rows": 0
},
{
"id": "__guide.pipeline_old_range_grid_guide",
"rows": 4
},
{
"id": "__guide.pipeline_recent_range_grid_guide",
"rows": 4
},
{
"id": "__guide.pipeline_old_price_x_guide",
"rows": 3
},
{
"id": "__guide.pipeline_old_range_y_guide",
"rows": 4
},
{
"id": "__guide.pipeline_recent_price_x_guide",
"rows": 3
},
{
"id": "__guide.pipeline_recent_range_y_guide",
"rows": 4
}
],
"transforms": [
{
"id": "pipeline_old_price_range_regression_transform",
"type": "regression",
"input": "pipeline_2016_2019_price_range_rows_source",
"output": "source_old_price_range_trend",
"options": {
"end": 66,
"errorMethod": "standardError",
"field": "adjustedpricek",
"fit": "contain",
"geometryField": "adjustedpricek",
"groupBy": [
"adjustedpricek"
],
"idField": "adjustedpricek",
"idPrefix": "old-trend",
"includeMax": false,
"labelField": "adjustedpricek",
"layoutKind": "",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"orderField": "adjustedpricek",
"parentField": "range",
"seriesBy": "range",
"sourceField": "adjustedpricek",
"start": 28,
"startField": "range",
"targetField": "range",
"value": "range",
"xField": "adjustedpricek",
"yField": "range"
}
},
{
"id": "pipeline_recent_price_range_regression_transform",
"type": "regression",
"input": "pipeline_2024_2026_price_range_rows_source",
"output": "source_recent_price_range_trend",
"options": {
"end": 80,
"errorMethod": "standardError",
"field": "adjustedpricek",
"fit": "contain",
"geometryField": "adjustedpricek",
"groupBy": [
"adjustedpricek"
],
"idField": "adjustedpricek",
"idPrefix": "recent-trend",
"includeMax": false,
"labelField": "adjustedpricek",
"layoutKind": "",
"layoutMode": "proportionalAngle",
"mode": "normal",
"order": [],
"orderField": "adjustedpricek",
"parentField": "range",
"seriesBy": "range",
"sourceField": "adjustedpricek",
"start": 28,
"startField": "range",
"targetField": "range",
"value": "range",
"xField": "adjustedpricek",
"yField": "range"
}
}
],
"axes": [
{
"id": "pipeline_old_price_x_guide",
"scale": "pipeline_xold_x_scale",
"orientation": "bottom"
},
{
"id": "pipeline_old_range_y_guide",
"scale": "pipeline_yold_y_scale",
"orientation": "left"
},
{
"id": "pipeline_recent_price_x_guide",
"scale": "pipeline_xrecent_x_scale",
"orientation": "bottom"
},
{
"id": "pipeline_recent_range_y_guide",
"scale": "pipeline_yrecent_y_scale",
"orientation": "left"
}
],
"grids": [
{
"id": "pipeline_old_range_grid_guide",
"scale": "pipeline_yold_y_scale",
"orientation": "y"
},
{
"id": "pipeline_recent_range_grid_guide",
"scale": "pipeline_yrecent_y_scale",
"orientation": "y"
}
],
"legends": [],
"fields": [
"__rowLabel",
"make",
"model",
"modellabel",
"year",
"adjusted_price",
"adjustedpricek",
"base_price",
"range",
"miles_per_1k_dollars",
"period",
"tooltip",
"tooltipeyebrow",
"tooltiptitle",
"tooltipbody",
"tooltipaccentcolor",
"id",
"articleUrl",
"embedUrl",
"extractedOn",
"nytArticleUrl",
"sourceDataset",
"adjustedPrice",
"adjustedPriceK",
"basePrice",
"milesPer1000Dollars",
"modelLabel",
"tooltipAccentColor",
"tooltipBody",
"tooltipEyebrow",
"tooltipTitle",
"panel",
"subtitle",
"subtitleY",
"title",
"titleX",
"titleY",
"label",
"priceK",
"value"
],
"scales": [
{
"id": "pipeline_xold_x_scale",
"type": "linear",
"domain": {
"source": "values",
"values": [
28,
80
],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
},
{
"id": "pipeline_yold_y_scale",
"type": "linear",
"domain": {
"source": "values",
"values": [
0,
420
],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
},
{
"id": "pipeline_xrecent_x_scale",
"type": "linear",
"domain": {
"source": "values",
"values": [
28,
80
],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
},
{
"id": "pipeline_yrecent_y_scale",
"type": "linear",
"domain": {
"source": "values",
"values": [
0,
420
],
"includeZero": false,
"order": "input",
"reverse": false,
"symmetric": false
}
}
],
"layers": [
{
"id": "pipeline_old_range_grid_guide",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_recent_range_grid_guide",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_old_price_x_guide-tick-marks",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_old_price_x_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_old_range_y_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_recent_price_x_guide-tick-marks",
"mark": "line",
"role": "guide"
},
{
"id": "pipeline_recent_price_x_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_recent_range_y_guide-labels",
"mark": "text",
"role": "guide"
},
{
"id": "create_chart_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_view_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_oldplot_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_recentplot_layout_surface",
"mark": "rect",
"role": "context"
},
{
"id": "pipeline_panel_titles_layer",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_panel_subtitles_layer",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_old_trend_layer",
"mark": "path",
"role": "guide",
"path": {
"directD": false,
"areaBand": false,
"closedToY": false,
"curve": "linear",
"sortBy": "x"
}
},
{
"id": "pipeline_recent_trend_layer",
"mark": "path",
"role": "guide",
"path": {
"directD": false,
"areaBand": false,
"closedToY": false,
"curve": "linear",
"sortBy": "x"
}
},
{
"id": "pipeline_old_trend_label_layer",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_recent_trend_label_layer",
"mark": "text",
"role": "guide"
},
{
"id": "pipeline_old_model_points_layer",
"mark": "point",
"role": "data"
},
{
"id": "pipeline_recent_model_points_layer",
"mark": "point",
"role": "data"
}
]
}Resolved SceneGraph
{
"scene": "gallery.flowingDataEvPriceRange.scene",
"scales": [
{
"id": "pipeline_xold_x_scale",
"type": "linear",
"domain": [
20,
80
],
"range": [
70,
400
],
"ticks": [
20,
40,
60,
80
]
},
{
"id": "pipeline_yold_y_scale",
"type": "linear",
"domain": [
0,
500
],
"range": [
396,
96
],
"ticks": [
0,
100,
200,
300,
400,
500
]
},
{
"id": "pipeline_xrecent_x_scale",
"type": "linear",
"domain": [
20,
80
],
"range": [
500,
830
],
"ticks": [
20,
40,
60,
80
]
},
{
"id": "pipeline_yrecent_y_scale",
"type": "linear",
"domain": [
0,
500
],
"range": [
396,
96
],
"ticks": [
0,
100,
200,
300,
400,
500
]
}
],
"layers": [
{
"id": "create_chart_surface",
"role": "context",
"zIndex": -10,
"glyphs": 1
},
{
"id": "pipeline_old_range_grid_guide",
"role": "guide",
"zIndex": 0,
"glyphs": 4
},
{
"id": "pipeline_recent_range_grid_guide",
"role": "guide",
"zIndex": 0,
"glyphs": 4
},
{
"id": "pipeline_view_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_oldplot_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_recentplot_layout_surface",
"role": "context",
"zIndex": 0,
"glyphs": 1
},
{
"id": "pipeline_old_price_x_guide-tick-marks",
"role": "guide",
"zIndex": 5,
"glyphs": 3
},
{
"id": "pipeline_recent_price_x_guide-tick-marks",
"role": "guide",
"zIndex": 5,
"glyphs": 3
},
{
"id": "pipeline_old_trend_layer",
"role": "guide",
"zIndex": 10,
"glyphs": 1
},
{
"id": "pipeline_recent_trend_layer",
"role": "guide",
"zIndex": 10,
"glyphs": 1
},
{
"id": "pipeline_old_price_x_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 3
},
{
"id": "pipeline_old_range_y_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 4
},
{
"id": "pipeline_recent_price_x_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 3
},
{
"id": "pipeline_recent_range_y_guide-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 4
},
{
"id": "pipeline_old_model_points_layer",
"role": "data",
"zIndex": 20,
"glyphs": 46
},
{
"id": "pipeline_recent_model_points_layer",
"role": "data",
"zIndex": 20,
"glyphs": 148
},
{
"id": "pipeline_old_trend_label_layer",
"role": "guide",
"zIndex": 25,
"glyphs": 1
},
{
"id": "pipeline_recent_trend_label_layer",
"role": "guide",
"zIndex": 25,
"glyphs": 1
},
{
"id": "pipeline_panel_titles_layer",
"role": "guide",
"zIndex": 30,
"glyphs": 2
},
{
"id": "pipeline_panel_subtitles_layer",
"role": "guide",
"zIndex": 30,
"glyphs": 2
}
]
}Glyph Data Tree
Full parameter lineage for the active compiler surface.
create_chart_surface
pipeline_old_range_grid_guide
pipeline_recent_range_grid_guide
pipeline_view_layout_surface
pipeline_oldplot_layout_surface
pipeline_recentplot_layout_surface
pipeline_old_price_x_guide-tick-marks
pipeline_recent_price_x_guide-tick-marks
pipeline_old_trend_layer
pipeline_recent_trend_layer
pipeline_old_price_x_guide-labels
pipeline_old_range_y_guide-labels
pipeline_recent_price_x_guide-labels
pipeline_recent_range_y_guide-labels
pipeline_old_model_points_layer
pipeline_recent_model_points_layer
pipeline_old_trend_label_layer
pipeline_recent_trend_label_layer
pipeline_panel_titles_layer
pipeline_panel_subtitles_layer
Glyph Inspector
Select a glyph in the chart to inspect resolved params and lineage.