> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Personnaliser les axes de journalisation

> Utilisez define_metric() pour définir un axe X personnalisé pour les métriques journalisées, à la place du compteur step par défaut de W&B.

Définissez un axe X personnalisé lorsque vous journalisez des métriques dans W\&B. Par défaut, W\&B journalise les métriques par *step*. Chaque step correspond à un appel d’API `wandb.Run.log()`.

Par exemple, le script suivant contient une boucle `for` de 10 itérations. À chaque itération, le script journalise une métrique nommée `validation_loss` et incrémente de 1 le numéro de step.

```python theme={"system"}
import wandb

with wandb.init() as run:
  # la fonction range génère une séquence de nombres de 0 à 9
  for i in range(10):
    log_dict = {
        "validation_loss": 1/(i+1)   
    }
    run.log(log_dict)
```

Dans le workspace du projet, la métrique `validation_loss` est tracée en fonction de l’axe X `step`, qui augmente de 1 à chaque appel de `wandb.Run.log()`. Avec le code précédent, l’axe X affiche les valeurs de step 0, 1, 2, ..., 9.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/standard_axes.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=4d2e1f4fff4992c8c7bc61788e82ed94" alt="Panneau de graphique linéaire qui utilise `step` comme axe X." width="1600" height="776" data-path="products/wandb/_media/standard_axes.png" />
</Frame>

Dans certains cas, il est plus pertinent de journaliser des métriques en fonction d’un autre axe X, par exemple un axe X logarithmique. La méthode [`define_metric()`](/fr/products/wandb/ref/python/experiments/run#define_metric) vous permet d’utiliser n’importe quelle métrique journalisée comme axe X personnalisé.

Indiquez la métrique à afficher sur l’axe Y avec le paramètre `name`. Le paramètre `step_metric` indique la métrique à utiliser comme axe X. Lorsque vous journalisez une métrique personnalisée, indiquez une valeur pour l’axe X et une pour l’axe Y sous forme de paires clé-valeur dans un dictionnaire.

Copiez-collez l’extrait de code suivant pour définir une métrique d’axe X personnalisée. Remplacez les valeurs entre `<>` par vos propres valeurs :

```python theme={"system"}
import wandb

custom_step = "<custom_step>"  # Nom de l’axe X personnalisé
metric_name = "<metric>"  # Nom de la métrique de l’axe Y

with wandb.init() as run:
    # Définir la métrique de step (axe X) et la métrique à journaliser en fonction de celle-ci (axe Y)
    run.define_metric(step_metric = custom_step, name = metric_name)

    for i in range(10):
        log_dict = {
            custom_step : int,  # Valeur de l’axe X
            metric_name : int,  # Valeur de l’axe Y
        }
        run.log(log_dict)
```

Par exemple, l’extrait de code suivant crée un axe X personnalisé nommé `x_axis_squared`. La valeur de cet axe X personnalisé correspond au carré de l’index `i` de la boucle for (`i**2`). L’axe Y contient des valeurs fictives de perte de validation (`"validation_loss"`), générées à l’aide du module intégré `random` de Python :

```python theme={"system"}
import wandb
import random

with wandb.init() as run:
    run.define_metric(step_metric = "x_axis_squared", name = "validation_loss")

    for i in range(10):
        log_dict = {
            "x_axis_squared": i**2,
            "validation_loss": random.random(),
        }
        run.log(log_dict)
```

L’image suivante montre le graphique obtenu dans l’interface de l’application W\&B. La métrique `validation_loss` est représentée en fonction de l’axe X personnalisé `x_axis_squared`, qui correspond au carré de l’index `i` de la boucle for. Notez que les valeurs de l’axe X sont `0, 1, 4, 9, 16, 25, 36, 49, 64, 81`, soit respectivement les carrés de `0, 1, 2, ..., 9`.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/custom_x_axes.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=53184f58512279ecba6e041c233b6958" alt="Panneau de graphique linéaire utilisant un axe X personnalisé. Les valeurs sont consignées dans W&B sous la forme du carré du numéro d’itération de la boucle." width="1590" height="820" data-path="products/wandb/_media/custom_x_axes.png" />
</Frame>

Vous pouvez définir un axe X personnalisé pour plusieurs métriques à l’aide de `globs` avec des préfixes de chaîne. Par exemple, l’extrait de code suivant représente les métriques journalisées ayant le préfixe `train/*` en fonction de l’axe X `train/step` :

```python theme={"system"}
import wandb

with wandb.init() as run:

    # utiliser ce step pour toutes les autres métriques train/
    run.define_metric("train/*", step_metric="train/step")

    for i in range(10):
        log_dict = {
            "train/step": 2**i,  # croissance exponentielle par rapport au step interne de W&B
            "train/loss": 1 / (i + 1),  # axe X : train/step
            "train/accuracy": 1 - (1 / (1 + i)),  # axe X : train/step
            "val/loss": 1 / (1 + i),  # axe X : step interne de wandb
        }
        run.log(log_dict)
```


## Related topics

- [Aperçu des graphiques en courbes](/fr/products/wandb/app/features/panels/line-plot.md)
