Charts /
CH-DST-08
CH-DST-08 . family DST
VIOLIN
mirrored density silhouette per category with a median tick. Needs: categories with a DECLARED density curve (grid + densities) and median.
distribution
Use when
- statistical audiences comparing multimodal shapes that a box hides
- the density curve is already computed and declared, with its bandwidth
Do not use when
- general audiences (violins are widely misread: prefer CH-DST-04 or
- CH-DST-03)
- small samples (a violin smooths noise into false shape)
See instead
Alternatives
- CH-DST-04 (quartile summary)
- CH-DST-03 (raw values)
- CH-DST-09 (one unmirrored curve)
Rules
- densities are supplied, never computed silently; the source line
- states the bandwidth
- global normalization: silhouette heights comparable across rows
- median tick spans the silhouette at its position
- shared zero-based value scale
Never do this
- violins for general audiences
- silent KDE with hidden bandwidth
- per-row normalization sold as comparable
- fewer than ~30 underlying values
QA before delivering
- densities declared with bandwidth in the source
- medians in range
- global normalization
- unit once
- source present
Data shape
| title | action title with a number |
| source | bottom-left always, must state the density bandwidth |
| unit | on first median label |
| categories | array of {label, grid: ascending values, density, median} |
| note | densities are DECLARED inputs; OVP never runs a silent KDE |
Sample data (golden)
{
"title": "Gate B hides two clusters behind one median",
"eyebrow": "REVIEW TIME SHAPES",
"source": "Source: document register, H1; KDE bandwidth 2.5 days",
"unit": "days",
"categories": [
{
"label": "Gate A",
"grid": [
0,
5,
10,
15,
20,
25,
30,
35,
40
],
"density": [
1,
3,
8,
14,
9,
4,
2,
1,
0
],
"median": 15
},
{
"label": "Gate B",
"grid": [
0,
5,
10,
15,
20,
25,
30,
35,
40
],
"density": [
6,
10,
4,
2,
3,
5,
9,
6,
1
],
"median": 15
},
{
"label": "Gate C",
"grid": [
0,
5,
10,
15,
20,
25,
30,
35,
40
],
"density": [
2,
4,
6,
8,
8,
8,
6,
4,
2
],
"median": 20
}
]
}