Box Plot
Signature
sp.build_boxplot(
title: str,
category_labels: list[str],
values: list[float],
*,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
background: str | None = None,
gridlines: bool = True,
no_x_axis: bool = False,
no_y_axis: bool = False,
) -> Chart
Aliases: sp.boxplot, sp.box_plot
Description
Box-and-whisker plot showing statistical distribution per category. Each box displays Q1, median, Q3, and IQR whiskers.
values is a flat list concatenating all category samples; the lengths must be equal across categories (same number of values per category).
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
title | str | required | Chart title |
category_labels | list[str] | required | One label per box |
values | list[float] | required | Flat list of all samples |
color_hex | int | 0x6366F1 | Single box fill color |
palette | list[int] | None | None | Per-category colors |
width | int | 900 | Canvas width in pixels |
height | int | 480 | Canvas height in pixels |
x_label | str | "" | X-axis label |
y_label | str | "" | Y-axis label |
gridlines | bool | True | Show horizontal gridlines |
Returns
Chart
Examples
Test scores by class
import seraplot as sp
import random
n = 50
groups = {
"Class A": [random.gauss(72, 10) for _ in range(n)],
"Class B": [random.gauss(68, 15) for _ in range(n)],
"Class C": [random.gauss(80, 8) for _ in range(n)],
}
labels = list(groups.keys())
values = [v for g in groups.values() for v in g]
chart = sp.build_boxplot(
"Test Score Distribution by Class",
category_labels=labels,
values=values,
y_label="Score",
gridlines=True,
)const sp = require('seraplot');
import random
const n = 50
const groups = {
"Class A": [random.gauss(72, 10) for _ in range(n)],
"Class B": [random.gauss(68, 15) for _ in range(n)],
"Class C": [random.gauss(80, 8) for _ in range(n)],
}
const labels = list(groups.keys())
const values = [v for g in groups.values() for v in g]
const chart = sp.build_boxplot("Test Score Distribution by Class",
labels,
{
values: values,
y_label: "Score",
gridlines: true
})import * as sp from 'seraplot';
import random
const n: number = 50
const groups = {
"Class A": [random.gauss(72, 10) for _ in range(n)],
"Class B": [random.gauss(68, 15) for _ in range(n)],
"Class C": [random.gauss(80, 8) for _ in range(n)],
}
const labels = list(groups.keys())
const values: number[] = [v for g in groups.values() for v in g]
const chart = sp.build_boxplot("Test Score Distribution by Class",
labels,
{
values: values,
y_label: "Score",
gridlines: true
})▶ Live Preview
See also
Signature
sp.build_boxplot(
title: str,
category_labels: list[str],
values: list[float],
*,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
background: str | None = None,
gridlines: bool = True,
no_x_axis: bool = False,
no_y_axis: bool = False,
) -> Chart
Aliases: sp.boxplot, sp.box_plot
Description
Boite à moustaches montrant la distribution statistique par catégorie. Chaque boîte affiche Q1, la médiane, Q3 et les moustaches IQR.
values est une liste plate concaténant tous les échantillons de toutes les catégories (même nombre de valeurs par catégorie).
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
title | str | requis | Titre du graphique |
category_labels | list[str] | requis | Une étiquette par boîte |
values | list[float] | requis | Liste plate de tous les échantillons |
color_hex | int | 0x6366F1 | Couleur de remplissage unique |
palette | list[int] | None | None | Couleurs par catégorie |
width | int | 900 | Largeur du canvas en pixels |
height | int | 480 | Hauteur du canvas en pixels |
x_label | str | "" | Étiquette de l'axe X |
y_label | str | "" | Étiquette de l'axe Y |
gridlines | bool | True | Afficher les lignes de grille horizontales |
Retourne
Chart
Exemples
Résultats de tests par classe
import seraplot as sp
import random
n = 50
groupes = {
"Classe A": [random.gauss(72, 10) for _ in range(n)],
"Classe B": [random.gauss(68, 15) for _ in range(n)],
"Classe C": [random.gauss(80, 8) for _ in range(n)],
}
labels = list(groupes.keys())
values = [v for g in groupes.values() for v in g]
chart = sp.build_boxplot(
"Distribution des scores par classe",
category_labels=labels,
values=values,
y_label="Score",
gridlines=True,
)