Scatter Chart
Signature
sp.build_scatter_chart(
title: str,
x_values: list[float],
y_values: list[float],
*,
color_hex: int = 0,
show_text: bool = False,
labels: list[str] | None = None,
sizes: list[float] | None = None,
color_groups: list[str] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
gridlines: bool = False,
sort_order: str = "none",
hover_json: str = "",
legend_position: str = "right",
palette: list[int] | None = None,
background: str | None = None,
no_x_axis: bool = False,
no_y_axis: bool = False,
show_regression: bool = False,
regression_type: str = "linear",
) -> Chart
Aliases: sp.scatter, sp.scatter_chart
Description
2D scatter plot with optional per-point sizing, grouping, labels, and regression line.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
title | str | required | Chart title |
x_values | list[float] | required | X coordinates |
y_values | list[float] | required | Y coordinates |
color_hex | int | 0 | Uniform point color |
show_text | bool | False | Show point labels on chart |
labels | list[str] | None | None | Per-point label text |
sizes | list[float] | None | None | Per-point relative size (0.0–1.0) |
color_groups | list[str] | None | None | Per-point group name for color |
show_regression | bool | False | Overlay regression line |
regression_type | str | "linear" | "linear" or "polynomial" |
width | int | 900 | Width in pixels |
height | int | 480 | Height in pixels |
x_label | str | "" | X-axis label |
y_label | str | "" | Y-axis label |
gridlines | bool | False | Show gridlines |
background | str | None | None | Background color |
Returns
Chart
Examples
Basic scatter
Colored groups with regression
import seraplot as sp
import numpy as np
rng = np.random.default_rng(0)
x_a = rng.normal(0, 1, 200).tolist()
y_a = [xi * 1.5 + rng.normal() for xi in x_a]
x_b = rng.normal(3, 1, 200).tolist()
y_b = [xi * 0.5 + rng.normal() for xi in x_b]
chart = sp.build_scatter_chart(
"Two Populations",
x_values=x_a + x_b,
y_values=y_a + y_b,
color_groups=["Group A"] * 200 + ["Group B"] * 200,
show_regression=True,
regression_type="linear",
x_label="X",
y_label="Y",
)const sp = require('seraplot');
function randn() {
const u = 1 - Math.random(), v = Math.random();
return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
}
function normal(mu, sigma, n) {
return Array.from({ length: n }, () => mu + sigma * randn());
}
const xA = normal(0, 1, 200);
const yA = xA.map(x => x * 1.5 + randn());
const xB = normal(3, 1, 200);
const yB = xB.map(x => x * 0.5 + randn());
const chart = sp.build_scatter_chart("Two Populations", [...xA, ...xB], {
y_values: [...yA, ...yB],
color_groups: [...Array(200).fill("Group A"), ...Array(200).fill("Group B")],
show_regression: true,
regression_type: "linear",
x_label: "X",
y_label: "Y",
});import * as sp from 'seraplot';
function randn(): number {
const u = 1 - Math.random(), v = Math.random();
return Math.sqrt(-2 * Math.log(u)) * Math.cos(2 * Math.PI * v);
}
function normal(mu: number, sigma: number, n: number): number[] {
return Array.from({ length: n }, () => mu + sigma * randn());
}
const xA: number[] = normal(0, 1, 200);
const yA: number[] = xA.map(x => x * 1.5 + randn());
const xB: number[] = normal(3, 1, 200);
const yB: number[] = xB.map(x => x * 0.5 + randn());
const chart = sp.build_scatter_chart("Two Populations", [...xA, ...xB], {
y_values: [...yA, ...yB],
color_groups: [...Array(200).fill("Group A"), ...Array(200).fill("Group B")],
show_regression: true,
regression_type: "linear",
x_label: "X",
y_label: "Y",
});▶ Live Preview
See also
- DBSCAN 2D — automatic clustering on scatter data
- Bubble — scatter with third size dimension
- Scatter 3D
Signature
sp.build_scatter_chart(
title: str,
x_values: list[float],
y_values: list[float],
*,
color_hex: int = 0,
show_text: bool = False,
labels: list[str] | None = None,
sizes: list[float] | None = None,
color_groups: list[str] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
gridlines: bool = False,
sort_order: str = "none",
hover_json: str = "",
legend_position: str = "right",
palette: list[int] | None = None,
background: str | None = None,
no_x_axis: bool = False,
no_y_axis: bool = False,
show_regression: bool = False,
regression_type: str = "linear",
) -> Chart
Aliases: sp.scatter, sp.scatter_chart
Description
Nuage de points 2D avec taille par point, regroupement, étiquettes et droite de régression optionnels.
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
title | str | requis | Titre du graphique |
x_values | list[float] | requis | Coordonnées X |
y_values | list[float] | requis | Coordonnées Y |
color_hex | int | 0 | Couleur uniforme des points |
show_text | bool | False | Afficher les étiquettes de points sur le graphique |
labels | list[str] | None | None | Texte d'étiquette par point |
sizes | list[float] | None | None | Taille relative par point (0.0–1.0) |
color_groups | list[str] | None | None | Nom de groupe par point pour la couleur |
show_regression | bool | False | Superposer une droite de régression |
regression_type | str | "linear" | "linear" ou "polynomial" |
width | int | 900 | Largeur en pixels |
height | int | 480 | Hauteur en pixels |
x_label | str | "" | Étiquette de l'axe X |
y_label | str | "" | Étiquette de l'axe Y |
gridlines | bool | False | Lignes de grille |
background | str | None | None | Couleur de fond |
Retourne
Chart
Exemples
import seraplot as sp
import numpy as np
rng = np.random.default_rng(0)
x_a = rng.normal(0, 1, 200).tolist()
y_a = [xi * 1.5 + rng.normal() for xi in x_a]
x_b = rng.normal(3, 1, 200).tolist()
y_b = [xi * 0.5 + rng.normal() for xi in x_b]
chart = sp.build_scatter_chart(
"Deux populations",
x_values=x_a + x_b,
y_values=y_a + y_b,
color_groups=["Groupe A"] * 200 + ["Groupe B"] * 200,
show_regression=True,
regression_type="linear",
x_label="X",
y_label="Y",
)
Voir aussi
- DBSCAN 2D — clustering automatique sur données de nuage de points
- Bulles — nuage de points avec troisième dimension de taille
- Nuage de points 3D