violin
A sample drawn as the shape of its density: a kernel density estimate of the readings, mirrored about the line the violin stands on, wide where readings crowd and narrow where they thin, and cut off square at the smallest and largest reading rather than drawn past them. Where a box keeps five numbers and throws the shape away, a violin keeps the shape, so two humps are two humps. It stands exactly as a boxplot does — a lane above the number line, one sample at an on:, or a violin at every name where its other coordinate is a column of names — and a violin, a box and a scatter of the same readings at one place share one slot, so a narrow box inside its violin is two lines. Each violin is as wide as width: of its slot at its own peak, so the shapes compare and the counts do not. Refused with both coordinates numeric, which leaves no line to stand on, and on the polar plane.
Only withplane
#Attributes
On any plane
purpleboxplot's and a scatter's width: are shares of, so a narrow box sits inside a wide violin by giving each its own share.0.8$maths$ and inline formatting render. Fades and draws with the element.hidden: true !cue.to{false}(at: 2) reveals it — and unlike a cue, a hidden element still frames the plot and holds its slot, so nothing moves when it appears.falseeditable: graph. Nothing at all on a graph that is not editable.falsex: and y: together, with one axis ruled in names, are a sample grouped by those names, a violin at each.Can be written as shorthand: violin:value#Allowed in
#Examples
violin(x: 2, 3, 3, 4, 4, 5, 7, 8, 8, 9)violin(x: #penguins.flipper; y: #penguins.species)violin(y: #trial.mass; on: control; bandwidth: 0.4)