Bubble Chart
Signature
sp.build_bubble(
title: str,
x_values: list[float],
y_values: list[float],
sizes: list[float],
*,
labels: list[str] | None = None,
color_groups: list[str] | None = None,
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
gridlines: bool = True,
background: str | None = None,
hover_json: str | None = None,
) -> Chart
Aliases: sp.bubble
Description
Bubble chart: scatter plot where each point's area encodes a third dimension (sizes).
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
title | str | required | Chart title |
x_values | list[float] | required | X-axis positions |
y_values | list[float] | required | Y-axis positions |
sizes | list[float] | required | Values that drive bubble radius |
labels | list[str] | None | None | Per-bubble text labels |
color_groups | list[str] | None | None | Group names for coloring |
color_hex | int | 0x6366F1 | Default bubble color |
palette | list[int] | None | None | Custom palette per group |
width | int | 900 | Canvas width |
height | int | 480 | Canvas height |
x_label | str | "" | X-axis label |
y_label | str | "" | Y-axis label |
gridlines | bool | True | Gridlines |
hover_json | str | None | None | Custom hover JSON |
Returns
Chart
Examples
Gapminder-style chart
import seraplot as sp
countries = ["USA", "China", "Germany", "India", "Brazil"]
gdp = [65000, 12500, 48000, 2100, 8800]
life_exp = [78.5, 77.1, 81.3, 69.7, 75.2]
population= [331, 1412, 83, 1380, 212]
chart = sp.build_bubble(
"GDP vs Life Expectancy (2023)",
x_values=gdp,
y_values=life_exp,
sizes=[p / 10 for p in population],
categories=countries,
x_label="GDP per capita ($)",
y_label="Life expectancy (years)",
)const sp = require('seraplot');
const countries = ["USA", "China", "Germany", "India", "Brazil"]
const gdp = [65000, 12500, 48000, 2100, 8800]
const life_exp = [78.5, 77.1, 81.3, 69.7, 75.2]
const population= [331, 1412, 83, 1380, 212]
const chart = sp.build_bubble("GDP vs Life Expectancy (2023)",
gdp,
life_exp,
{
sizes: [p / 10 for p in population],
categories: countries,
x_label: "GDP per capita ($)",
y_label: "Life expectancy (years)"
})import * as sp from 'seraplot';
const countries: string[] = ["USA", "China", "Germany", "India", "Brazil"]
const gdp: number[] = [65000, 12500, 48000, 2100, 8800]
const life_exp: number[] = [78.5, 77.1, 81.3, 69.7, 75.2]
const population= [331, 1412, 83, 1380, 212]
const chart = sp.build_bubble("GDP vs Life Expectancy (2023)",
gdp,
life_exp,
{
sizes: [p / 10 for p in population],
categories: countries,
x_label: "GDP per capita ($)",
y_label: "Life expectancy (years)"
})▶ Live Preview
See also
Signature
sp.build_bubble(
title: str,
x_values: list[float],
y_values: list[float],
sizes: list[float],
*,
labels: list[str] | None = None,
color_groups: list[str] | None = None,
color_hex: int = 0x6366F1,
palette: list[int] | None = None,
width: int = 900,
height: int = 480,
x_label: str = "",
y_label: str = "",
gridlines: bool = True,
background: str | None = None,
hover_json: str | None = None,
) -> Chart
Aliases: sp.bubble
Description
Graphique à bulles : nuage de points où la surface de chaque point encode une troisième dimension (sizes).
Paramètres
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
title | str | requis | Titre du graphique |
x_values | list[float] | requis | Positions sur l'axe X |
y_values | list[float] | requis | Positions sur l'axe Y |
sizes | list[float] | requis | Valeurs déterminant le rayon des bulles |
labels | list[str] | None | None | Étiquettes textuelles par bulle |
color_groups | list[str] | None | None | Noms de groupe pour la coloration |
color_hex | int | 0x6366F1 | Couleur par défaut des bulles |
palette | list[int] | None | None | Palette personnalisée par groupe |
width | int | 900 | Largeur du canvas |
height | int | 480 | Hauteur du canvas |
x_label | str | "" | Étiquette de l'axe X |
y_label | str | "" | Étiquette de l'axe Y |
gridlines | bool | True | Lignes de grille |
hover_json | str | None | None | JSON d'infobulle personnalisée |
Retourne
Chart
Exemples
Style Gapminder
import seraplot as sp
pays = ["USA", "Chine", "Allemagne", "Inde", "Brésil"]
pib = [65000, 12500, 48000, 2100, 8800]
esp_vie = [78.5, 77.1, 81.3, 69.7, 75.2]
population= [331, 1412, 83, 1380, 212]
chart = sp.build_bubble(
"PIB vs Espérance de vie (2023)",
x_values=pib,
y_values=esp_vie,
sizes=[p / 10 for p in population],
color_groups=pays,
x_label="PIB par habitant ($)",
y_label="Espérance de vie (ans)",
)