Funnel — Conversion / Pipeline Chart
Signature
sp.funnel(title, labels, values, *, variant="basic", palette=None, show_text=True, **kwargs) -> Chart
Description
sp.funnel() renders the entire funnel-chart family: a stacked sequence of stages where each step’s width encodes a value. The variant keyword switches the geometry without changing any other parameter. Funnels are the standard for conversion analytics (visitors → signups → paid), recruiting pipelines, sales pipelines, process drop-off and any descending-cohort analysis.
Variants
Parameters
Returns
Chart — object with .html property and .show() method.
Tips
- Sort stages descending before passing them in (or use
sort_order="desc"). - Use
"conversion"when the audience cares about stage-to-stage retention rate. - The
"pyramid"variant works best when values follow a steep decay. - For broad audiences,
"chevron"reads as a sales pipeline more naturally than the trapezoid.
Classic centered trapezoid pyramid — each step’s top width inherits the previous bottom width.
Centered rectangles per stage (no diagonal slope), width ∝ value/max.
Trapezoids with rounded outer corners — softer, pill-like aesthetic.
Pentagon arrow shapes pointing right — sales-pipeline / process flow style.
Continuous pyramid: each level narrows progressively to a point at the bottom.
Vertically flipped funnel — widest stage at the bottom (growth pyramid).
Basic trapezoid plus drop-off percentage between consecutive stages displayed in red.
Several independent funnels side by side, each with its own stage count and its own scale - the native equivalent of composing multiple go.Funnel() traces in Plotly, without ever building a trace by hand. Pass series (one value list per funnel), series_names (funnel names) and category_series (one stage-label list per funnel, since funnels can have different stage counts). Automatically selected whenever series has more than one entry and category_series is given - use "grouped" instead when every group shares the same stages. text_info combines "value", "percent_initial", "percent_previous" and "percent_total" with +.
One funnel, several colored groups sharing the exact same stages - each stage's band splits into adjacent, touching segments (no gap) whose widths are proportional to each group's own value on one shared linear scale, so the combined shape tapers naturally like a single funnel. The native equivalent of px.funnel(df, x="number", y="stage", color="office") in Plotly - works with any number of groups, not just two. Auto-selected whenever series has more than one entry and category_series is not given.
Signature
sp.funnel(title, labels, values, *, variant="basic", palette=None, show_text=True, **kwargs) -> Chart
Description
sp.funnel() produit toute la famille des entonnoirs : une séquence d’étapes empilées dont la largeur encode une valeur. Le mot-clé variant permute la géométrie sans changer aucun autre paramètre. Standard pour l’analyse de conversion (visiteurs → inscrits → payants), pipelines de recrutement, pipelines commerciaux, fuites de processus et toute analyse de cohorte décroissante.
Variantes
Paramètres
Retour
Chart — objet avec propriété .html et méthode .show().
Astuces
- Triez les étapes décroissantes avant de les passer (ou utilisez
sort_order="desc"). - Utilisez
"conversion"quand l’audience s’intéresse au taux de rétention entre étapes. - La variante
"pyramid"fonctionne mieux avec des valeurs en forte décroissance. - Pour un public large,
"chevron"se lit plus naturellement comme un pipeline commercial qu’un trapèze.
Pyramide trapézoïdale centrée classique — le haut de chaque étape hérite du bas de la précédente.
Rectangles centrés par étape (sans pente diagonale), largeur ∝ valeur/max.
Trapèzes avec coins arrondis — esthétique douce de type pilule.
Pentagones en flèche pointant à droite — style pipeline commercial / processus.
Pyramide continue : chaque niveau se rétrécit progressivement jusqu’à une pointe.
Entonnoir inversé verticalement — étape la plus large en bas (pyramide de croissance).
Trapèze de base avec le pourcentage de chute entre étapes affiché en rouge.
Plusieurs entonnoirs indépendants côte à côte, chacun avec son propre nombre d'étapes et sa propre échelle - l'équivalent natif de composer plusieurs traces go.Funnel() en Plotly, sans jamais construire de trace à la main. Passez series (une liste de valeurs par entonnoir), series_names (noms des entonnoirs) et category_series (une liste d'étiquettes d'étapes par entonnoir, puisque les entonnoirs peuvent avoir des nombres d'étapes différents). Sélectionné automatiquement dès que series a plus d'une entrée et que category_series est fourni - utilisez "grouped" quand tous les groupes partagent les mêmes étapes. text_info combine "value", "percent_initial", "percent_previous" et "percent_total" avec +.
Un seul entonnoir, plusieurs groupes colorés partageant exactement les mêmes étapes - la bande de chaque étape se divise en segments adjacents et jointifs (sans espace) dont les largeurs sont proportionnelles à la valeur de chaque groupe sur une même échelle linéaire partagée, si bien que la forme combinée se rétrécit naturellement comme un seul entonnoir. L'équivalent natif de px.funnel(df, x="number", y="stage", color="office") en Plotly - fonctionne avec n'importe quel nombre de groupes, pas seulement deux. Sélectionné automatiquement dès que series a plus d'une entrée et que category_series n'est pas fourni.