Formatage des axes de visualisation
PostHog rend les insights TrendsQuery avec un formateur d'axe intégré. Utilisez-le
au lieu de contourner formula ou aggregationAxisPostfix pour simuler des unités.
L'anti-pattern
Si vous utilisez l'un de ceux-ci, arrêtez-vous et choisissez d'abord un format ci-dessous :
formula: "A / 60"avecaggregationAxisPostfix: " mins"— conversion manuelle secondes -> minutesformula: "A / 1000"avecaggregationAxisPostfix: " s"— conversion manuelle ms -> secondesformula: "A * 100"avecaggregationAxisPostfix: "%"— conversion manuelle ratio -> pourcentageaggregationAxisPostfix: "ms"/"s"/"min"/"hr"sur des valeurs brutes
Ces approches figent l'unité à une seule échelle. Le formateur intégré choisit une unité conviviale par valeur (1,5s, 2m 12s, 1h 4m) et conserve la série sous-jacente numériquement correcte pour les calculs ultérieurs, les ventilations et les alertes.
Formats disponibles
Définissez trendsFilter.aggregationAxisFormat sur la TrendsQuery :
| Valeur | À utiliser quand la série est... | Rendu |
|---|---|---|
numeric (défaut) |
un simple comptage | 1 234 |
duration |
secondes (toute échelle) | 45s, 2m 12s, 1h 4m |
duration_ms |
millisecondes | 850ms, 1,5s, 1m 4s |
percentage |
déjà 0-100 | 47,3% |
percentage_scaled |
un ratio 0-1 | 47,3% |
currency |
argent dans la devise de base du projet | $1 234,56 (ou code local) |
short |
grands comptages à compacter | 1,2K, 3,4M |
Champs complémentaires sur trendsFilter :
aggregationAxisPrefix— préfixe littéral (ex."$") quand vous avez besoin d'un symbole épinglé à une devise ou unité spécifique, indépendamment des paramètres du projetaggregationAxisPostfix— suffixe littéral ; réservez-le aux unités véritables que le format ne peut pas exprimer (ex." req"," events"), jamais pour"mins"/"s"decimalPlaces— limiter les décimales (1 ou 2 est généralement bon pour les devises / ratios)
Devise — choisissez format ou prefix avec soin
aggregationAxisFormat: "currency" rend avec la devise de base du projet
(définie dans les paramètres du projet, par défaut USD). Utilisez-la quand les valeurs
sous-jacentes sont dans cette même devise — ex. les événements de revenu que PostHog
convertit automatiquement dans la devise de base du projet.
Si les valeurs sont épinglées à une devise spécifique indépendamment du projet (ex.
$ai_total_cost_usd est toujours USD, même sur un projet en base EUR), utilisez
aggregationAxisPrefix: "$" + decimalPlaces: 2 afin que le symbole corresponde aux
données. Utiliser format: "currency" ici afficherait les valeurs USD avec € sur un
projet EUR.
Quand la série est en secondes
Si la série est en secondes (latence, durée de session, temps jusqu'au premier événement,
temps de traitement, chargement de page, etc.), utilisez par défaut silencieusement
aggregationAxisFormat: "duration". Ne demandez pas — le formateur est
non-destructif (les valeurs sous-jacentes restent en secondes de toute façon, seules les
étiquettes changent), donc le choisir est toujours au moins aussi bon que les secondes brutes.
Confirmez avec l'utilisateur seulement quand il a explicitement nommé une unité fixe qu'il veut épingler (« afficher ceci en minutes », « tracer la moyenne en heures ») :
« Je peux épingler l'axe y en minutes en divisant la série par 60, ou utiliser le formateur
durationde PostHog qui choisit automatiquement secondes / minutes / heures par valeur —90ss'affiche comme1m 30set5400scomme1h 30m. Lequel préférez-vous ? »
Dans des contextes MCP en une seule tentative sans utilisateur en boucle, choisissez simplement
duration et continuez.
Exemples
Latence — durée en millisecondes
{
"kind": "TrendsQuery",
"series": [
{
"kind": "EventsNode",
"event": "$pageview",
"math": "p95",
"math_property": "$performance_page_loaded"
}
],
"trendsFilter": {
"aggregationAxisFormat": "duration_ms"
}
}
Durée moyenne de session — durée en secondes
{
"kind": "TrendsQuery",
"series": [
{
"kind": "EventsNode",
"event": "$pageleave",
"math": "avg",
"math_property": "$session_duration"
}
],
"trendsFilter": {
"aggregationAxisFormat": "duration"
}
}
Revenu — devise dans la devise de base du projet
{
"trendsFilter": {
"aggregationAxisFormat": "currency",
"decimalPlaces": 2
}
}
Valeur en devise fixe (ex. coût LLM en USD) — épinglez le symbole
{
"trendsFilter": {
"aggregationAxisPrefix": "$",
"decimalPlaces": 2
}
}
Taux de conversion — pourcentage à partir d'une formule 0-1
{
"kind": "TrendsQuery",
"series": [
{
"kind": "EventsNode",
"event": "checkout_completed",
"math": "dau"
},
{
"kind": "EventsNode",
"event": "checkout_started",
"math": "dau"
}
],
"trendsFilter": {
"formula": "A / B",
"aggregationAxisFormat": "percentage_scaled",
"decimalPlaces": 1
}
}
Mise à jour d'une visualisation existante
Si vous mettez à jour une visualisation et que vous remarquez qu'elle utilise déjà
l'anti-pattern formula/postfix, corrigez-la dans le même appel posthog:insight-update
— supprimez la division par N, supprimez aggregationAxisPostfix, et définissez le
aggregationAxisFormat correspondant. Les valeurs de la série restent les mêmes, seules les
étiquettes changent. Ne scannez pas les visualisations non liées pour ce pattern —
corrigez seulement celles que vous modifiez déjà.