Ridgeline Chart
Signature
sp.build_ridgeline_chart(
title: str,
categories: list[str],
values: list[float],
*,
bandwidth: float = 1.0,
overlap: float = 0.5,
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
background: str | None = None,
gridlines: bool = False,
) -> Chart
Aliases: sp.ridgeline
Description
Ridgeline (joy) chart — stacked KDE curves per category. Excellent for comparing distributional shapes across many groups.
values is a flat list. The number of values must be divisible by len(categories) (equal samples per group).
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
title | str | required | Chart title |
categories | list[str] | required | Category labels (one ridge each) |
values | list[float] | required | Flat concatenated sample data |
bandwidth | float | 1.0 | KDE bandwidth factor |
overlap | float | 0.5 | Ridge overlap (0 = no overlap, 1 = full overlap) |
color_hex | int | 0x6366F1 | Single fill color |
palette | list[int] | None | None | Per-ridge colors |
width | int | 900 | Canvas width |
height | int | 480 | Canvas height |
x_label | str | "" | X-axis label |
gridlines | bool | False | Vertical gridlines |
Returns
Chart
Examples
Daily temperature ridgeline
import seraplot as sp
import random
months = ["Jan", "Apr", "Jul", "Oct"]
means = [5, 15, 28, 16]
values = [v for m in means for v in [random.gauss(m, 4) for _ in range(100)]]
chart = sp.build_ridgeline_chart(
"Monthly Temperature Distribution",
categories=months,
values=values,
overlap=0.6,
x_label="°C",
)const sp = require('seraplot');
import random
const months = ["Jan", "Apr", "Jul", "Oct"]
const means = [5, 15, 28, 16]
const values = [v for m in means for v in [random.gauss(m, 4) for _ in range(100)]]
const chart = sp.build_ridgeline_chart("Monthly Temperature Distribution",
months,
{
values: values,
overlap: 0.6,
x_label: "°C"
})import * as sp from 'seraplot';
import random
const months: string[] = ["Jan", "Apr", "Jul", "Oct"]
const means: number[] = [5, 15, 28, 16]
const values: number[] = [v for m in means for v in [random.gauss(m, 4) for _ in range(100)]]
const chart = sp.build_ridgeline_chart("Monthly Temperature Distribution",
months,
{
values: values,
overlap: 0.6,
x_label: "°C"
})▶ Live Preview
See also
Signature
sp.build_ridgeline_chart(
title: str,
categories: list[str],
values: list[float],
*,
bandwidth: float = 1.0,
overlap: float = 0.5,
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
background: str | None = None,
gridlines: bool = False,
) -> Chart
Aliases: sp.ridgeline
Description
Graphique ridgeline (joy plot) — courbes KDE empilées par catégorie. Excellent pour comparer les formes de distribution entre de nombreux groupes.
values est une liste plate. Le nombre de valeurs doit être divisible par len(categories) (échantillons égaux par groupe).
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
title | str | requis | Titre du graphique |
categories | list[str] | requis | Étiquettes des catégories (une crête par catégorie) |
values | list[float] | requis | Échantillons concaténés en liste plate |
bandwidth | float | 1.0 | Facteur de bande passante KDE |
overlap | float | 0.5 | Chevauchement des crêtes (0 = aucun, 1 = complet) |
color_hex | int | 0x6366F1 | Couleur de remplissage unique |
palette | list[int] | None | None | Couleurs par crête |
width | int | 900 | Largeur du canvas |
height | int | 480 | Hauteur du canvas |
x_label | str | "" | Étiquette de l'axe X |
gridlines | bool | False | Lignes de grille verticales |
Retourne
Chart
Exemples
import seraplot as sp
import random
mois = ["Jan", "Avr", "Jul", "Oct"]
moyennes = [5, 15, 28, 16]
valeurs = [v for m in moyennes for v in [random.gauss(m, 4) for _ in range(100)]]
chart = sp.build_ridgeline_chart(
"Distribution de température mensuelle",
categories=mois,
values=valeurs,
overlap=0.6,
x_label="°C",
)