Chart Compiler Gallery
ChartSpec data compiles into resolved scales, layer specs, glyph definitions, scene graph nodes, and a single SVG renderer.
Violin Plot
Raw grouped observations compile into mirrored density paths, with median and interquartile guides derived from the same source rows.
Data Sources
4
Fields
23
Scales
2
Layers
7
Glyphs
25
line 13 / path 3 / text 9
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
Raw grouped observations
ChartSpec
{
"id": "catalogue.violin-plot",
"data": [
{
"id": "observations",
"rows": 45
},
{
"id": "violins",
"rows": 3
},
{
"id": "__guide.y-grid",
"rows": 6
},
{
"id": "__guide.y",
"rows": 6
}
],
"transforms": [
{
"id": "violin-density-layout",
"type": "layout",
"input": "observations",
"output": "violins",
"options": {
"layoutKind": "violin",
"layout": "plot",
"groupBy": [
"category"
],
"value": "score",
"count": 52,
"start": 40,
"end": 100,
"order": [
"Baseline",
"Variant",
"Control"
]
}
}
],
"axes": [
{
"id": "y",
"scale": "y",
"orientation": "left",
"tickFormat": {
"maximumFractionDigits": 0
}
}
],
"grids": [
{
"id": "y-grid",
"scale": "y",
"orientation": "y"
}
],
"fields": [
"category",
"pathD",
"median",
"q1",
"q3",
"count",
"bandwidth",
"tooltip",
"score",
"centerX",
"labelX",
"labelY",
"medianX1",
"medianX2",
"medianY",
"q1Y",
"q3Y",
"minValue",
"maxValue",
"sampleCount",
"maxDensity",
"value",
"label"
],
"scales": [
{
"id": "y",
"type": "linear",
"domain": {
"source": "values",
"values": [
40,
100
]
}
},
{
"id": "color",
"type": "ordinal",
"domain": {
"source": "field",
"data": "violins",
"field": "category"
}
}
],
"layers": [
{
"id": "y-grid",
"mark": "line",
"role": "guide"
},
{
"id": "y-axis",
"mark": "line",
"role": "guide"
},
{
"id": "y-labels",
"mark": "text",
"role": "guide"
},
{
"id": "violins",
"mark": "path",
"role": "data",
"path": {
"directD": true,
"areaBand": false,
"closedToY": false,
"curve": "smooth"
}
},
{
"id": "iqr-lines",
"mark": "line",
"role": "guide"
},
{
"id": "median-lines",
"mark": "line",
"role": "guide"
},
{
"id": "category-labels",
"mark": "text",
"role": "guide"
}
]
}Resolved SceneGraph
{
"scene": "catalogue.violin-plot.scene",
"scales": [
{
"id": "y",
"type": "linear",
"domain": [
40,
100
],
"range": [
284,
28
],
"ticks": [
40,
52,
64,
76,
88,
100
]
},
{
"id": "color",
"type": "ordinal",
"domain": [
"Baseline",
"Variant",
"Control"
],
"range": [
"var(--colors-blue-9)",
"var(--colors-green-9)",
"var(--colors-amber-9)",
"var(--colors-purple-9)",
"var(--colors-red-9)"
]
}
],
"layers": [
{
"id": "y-grid",
"role": "guide",
"zIndex": 0,
"glyphs": 6
},
{
"id": "y-axis",
"role": "guide",
"zIndex": 0,
"glyphs": 1
},
{
"id": "violins",
"role": "data",
"zIndex": 10,
"glyphs": 3
},
{
"id": "y-labels",
"role": "guide",
"zIndex": 20,
"glyphs": 6
},
{
"id": "iqr-lines",
"role": "guide",
"zIndex": 20,
"glyphs": 3
},
{
"id": "median-lines",
"role": "guide",
"zIndex": 25,
"glyphs": 3
},
{
"id": "category-labels",
"role": "guide",
"zIndex": 30,
"glyphs": 3
}
]
}Glyph Data Tree
Full parameter lineage for the active compiler surface.
y-grid
y-axis
violins
y-labels
iqr-lines
median-lines
category-labels
Glyph Inspector
Select a glyph in the chart to inspect resolved params and lineage.